)]}'
{
  "log": [
    {
      "commit": "ba8069e08890aef80465048d2dfe0f53dbcbd4f8",
      "tree": "970ca1ab0dc2b1d231561cd0aeaf7912c00bc6a0",
      "parents": [
        "0bad53b2f37c7e922b99f8f0aff45b2933f41043",
        "2466d627fc877ed328226ab001e7dd061ecbc49b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 27 03:30:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 27 03:30:49 2017 +0000"
      },
      "message": "Merge \"Pass methods array to GetMethodsSliceRangeUnchecked\""
    },
    {
      "commit": "fb21f9db756751a535f46c5683b167a493cdd0c3",
      "tree": "fa0ac8d78851ae0ae169f2412ee796002a438fa7",
      "parents": [
        "15aa5f6e87c96c4436ef54bbdd048ff5c6495cba",
        "25651129552c3e9a8c87c68852da43c6069d7a53"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 27 01:25:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 27 01:25:00 2017 +0000"
      },
      "message": "Merge \"ART: Refactor IRT:Add\""
    },
    {
      "commit": "2466d627fc877ed328226ab001e7dd061ecbc49b",
      "tree": "4e6149e458f0113a9d3567c789f94cdb9e708ab4",
      "parents": [
        "2dc2bcc09aff444fad4d0c0ae12458bde5716699"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 26 13:52:26 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 26 15:36:22 2017 -0700"
      },
      "message": "Pass methods array to GetMethodsSliceRangeUnchecked\n\nAim to prevent cases where a different method array is used in the\ncaller than is used to compare end_offset against the number of\nmethods.\n\nTest: test-art-host\nBug: 66940748\nChange-Id: I53e6ed8192babfa3bbb0f2cde08a1e8e3008426a\n"
    },
    {
      "commit": "2dc2bcc09aff444fad4d0c0ae12458bde5716699",
      "tree": "34349393fef17bbaf051393e745e26157ef81703",
      "parents": [
        "8b96c164a11284c07886fca9e4a4a0e15d33e816",
        "b09be72c815c1f427616082bd07fa5a0ccffa29a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 26 17:43:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 26 17:43:27 2017 +0000"
      },
      "message": "Merge \"Ensure the  oat/vdex file is erased if we fail to truncate\""
    },
    {
      "commit": "f6362521be659bc03f62d06cc621b34c55169338",
      "tree": "b8fbd43268ae041d6ea6deb0c82381f8965174e9",
      "parents": [
        "4894cdd8ebd4624f0f09c1545c1bbf7ff0bb5bc3",
        "6fdc1b671e089e52abca05b58fb8026a3a2d4701"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 26 15:58:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 26 15:58:22 2017 +0000"
      },
      "message": "Merge changes I87f14bf1,Idc21bf89\n\n* changes:\n  Updated tests skips for jvmti/redefine stress.\n  Lower PLOG(ERROR) to PLOG(WARNING) if unable to find realpath\n"
    },
    {
      "commit": "4894cdd8ebd4624f0f09c1545c1bbf7ff0bb5bc3",
      "tree": "d2e2cc57dd046e2bd06cb3cc67e2e9f6950dac87",
      "parents": [
        "d796c61d303424798c8cd35fabb77760255ea2aa",
        "0ebe0d83138bba1996e9c8007969b5381d972b32"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 26 09:15:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 26 09:15:35 2017 +0000"
      },
      "message": "Merge \"ART: Introduce compiler data type.\""
    },
    {
      "commit": "b09be72c815c1f427616082bd07fa5a0ccffa29a",
      "tree": "9e1c03313e7cb4d2c967ff2c317bb4ae4f66d95d",
      "parents": [
        "d4215bba6f10bc952bdf54105ae81b5f45cb8df4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Sep 25 16:42:48 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Sep 25 16:50:13 2017 -0700"
      },
      "message": "Ensure the  oat/vdex file is erased if we fail to truncate\n\nAlso, transform fd_file.cc CHECKS into DCHECKS to make sure we don\u0027t crash\non user devices.\n\nTest: m test-art-host-gtest\nBug: 66903292\nChange-Id: I4de921a3d621d616241ca73f1797c113cf153698\n"
    },
    {
      "commit": "25651129552c3e9a8c87c68852da43c6069d7a53",
      "tree": "47143cda833a81cb2757f55f97d8ae5d64c227d4",
      "parents": [
        "8f6d83f69a570a273e46cfdbde8284fbbe83ea71"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 25 14:50:23 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 25 16:06:01 2017 -0700"
      },
      "message": "ART: Refactor IRT:Add\n\nDo not abort on overflow. Return null and an error message. The\ncaller is responsible for handling this, e.g., by aborting. In a\nfuture CL, this may be used for driving additional GCs.\n\nAdditional side effect is the removal of a frame from an abortion\nstack trace.\n\nTest: m\nTest: m test-art-host\nChange-Id: I80b1e0ee396fc69906d051f1b661d7dba222fc6f\n"
    },
    {
      "commit": "3f093891e55383055eecc940b724ee1f24f50123",
      "tree": "289006f142414b62066c55bc21b1a6b4d2d18656",
      "parents": [
        "f2d23eefe95c35df3c910ae02834bb725147a277"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 14 15:11:01 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 25 14:12:16 2017 -0700"
      },
      "message": "ART: Change GetAndroidRoot() handling\n\nChange ART\u0027s very static setup for the root (\u003dsystem) directory.\nThis change still prefers the value of the ANDROID_ROOT environment\nvariable. But as a second step, check the path of the running\nlibart(d) and try to derive a folder by removing the library and\nlibrary path component. Only if that fails attempt the static\n\"/system.\"\n\nThis requires a change to GetAndroidRoot\u0027s return type to std::string.\n\nAdd a test of GetAndroidRootSafe to utils_test.\n\nBug: 65679670\nTest: m\nTest: m test-art-host-gtest-utils_test\nTest: m test-art-host\nTest: device boots\nChange-Id: Ica99eef8b0ab798f951d63a326f0e599a4a8b469\n"
    },
    {
      "commit": "2c1ef390107b6e0282502d0c5631575d36b4d6bf",
      "tree": "1bda9405566429b3182ac155d7b8c375f8ebd0c1",
      "parents": [
        "01682113de50efdf8e554193e99e2625b9a4bcd4",
        "d17c8b6867dcad2beed2eff7290efc6d95bfca75"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 25 15:59:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 25 15:59:07 2017 +0000"
      },
      "message": "Merge \"Delete DexMethodIterator\""
    },
    {
      "commit": "0ebe0d83138bba1996e9c8007969b5381d972b32",
      "tree": "a5ee66ebc5b587ade97e56ac8fc7d832fbbed4af",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 22:50:39 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 25 15:45:01 2017 +0100"
      },
      "message": "ART: Introduce compiler data type.\n\nReplace most uses of the runtime\u0027s Primitive in compiler\nwith a new class DataType. This prepares for introducing\nnew types, such as Uint8, that the runtime does not need\nto know about.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 23964345\nChange-Id: Iec2ad82454eec678fffcd8279a9746b90feb9b0c\n"
    },
    {
      "commit": "d17c8b6867dcad2beed2eff7290efc6d95bfca75",
      "tree": "c8d030c068859f191ddf2406f6781b76694f92bb",
      "parents": [
        "2406bf17998e15bd40677a907beb3e9c41facce4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Sep 23 12:04:32 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Sep 23 13:08:15 2017 -0700"
      },
      "message": "Delete DexMethodIterator\n\nThis class is unused in ART.\n\nTest: test-art-host-gtest\n\nChange-Id: Ie231da0eaf379c074ce7f3c39fea7dbeb546eaa6\n"
    },
    {
      "commit": "79bbbc1c9c40478ccf752214da9574dd22cd8b02",
      "tree": "5184630c2b67edec70438c7da94b7916b199192b",
      "parents": [
        "d95b7e1e9b98df6469068acafabee2e84a4835c2",
        "3d69922789f41f9d66e9b82c56c668538d8163ee"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 22 09:58:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 09:58:04 2017 +0000"
      },
      "message": "Merge \"Change JIT timings to collect thread CPU time.\""
    },
    {
      "commit": "d95b7e1e9b98df6469068acafabee2e84a4835c2",
      "tree": "d03ac543753e98d79e40b08861c8571ed28a486d",
      "parents": [
        "9d712939ecadeb40092edbff757a735b7afb6403",
        "b8a55f8a62b1309efe52ec0290dfdcf60f34a550"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 22 09:38:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 09:38:03 2017 +0000"
      },
      "message": "Merge \"ART: Faster PrettyMethod().\""
    },
    {
      "commit": "3d69922789f41f9d66e9b82c56c668538d8163ee",
      "tree": "5ebd1b220152e27c83ba1d9bd26aa6f9eb91d2fd",
      "parents": [
        "93780a60090356921b844dbefdc13442c9f18b52"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 20 15:15:20 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 22 09:31:42 2017 +0100"
      },
      "message": "Change JIT timings to collect thread CPU time.\n\nTest: m\nTest: timing_logger_test.cc\nChange-Id: I26fd86e66c4dd967dc62b629f6b6cde97b71ed13\n"
    },
    {
      "commit": "9d712939ecadeb40092edbff757a735b7afb6403",
      "tree": "41cb341405e5c1a3bdf2be3c91887b59fa487f4a",
      "parents": [
        "594bccc1280408243d834c60ac1329b0a68bf0c2",
        "460ab793ac9ae8743e26d3f257fa163c1ee5e04a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 22 02:31:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 02:31:38 2017 +0000"
      },
      "message": "Merge \"Verify NumberMethodId in profile and dex_file.\""
    },
    {
      "commit": "594bccc1280408243d834c60ac1329b0a68bf0c2",
      "tree": "ccfc7222139cebbb1413e79ecdb434a133b4c89f",
      "parents": [
        "f4ef5c6e2554c904ef9c088de9a63ae8b7c854e4",
        "fd03f1ef004b194a3408f52a8812e1f47b21b6cc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 22 01:17:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 22 01:17:18 2017 +0000"
      },
      "message": "Merge \"ART: Improve double-JNI-load exception message\""
    },
    {
      "commit": "91842aebfa418f5efad8933a9d79db097f079246",
      "tree": "71ec195627932114f515cffc4fb1933dfc59b3d6",
      "parents": [
        "f4ef5c6e2554c904ef9c088de9a63ae8b7c854e4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 07 14:15:28 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 21 16:42:30 2017 -0700"
      },
      "message": "Lower PLOG(ERROR) to PLOG(WARNING) if unable to find realpath\n\nWe were emitting a PLOG(ERROR) from class_loader_context if we are\nunable to find the dex-files realpath. This is an issue because\nInMemoryDexClassLoader and some --redefine-stress tests cause this\nmessage to be printed, making the test fail.\n\nThis also brings it more into line with other logs in this file.\n\nTest: ./test/run-test --host --jvmti-redefine-stress 071\nChange-Id: Idc21bf89be02ca9263fbec7f28fdf036196ab58c\n"
    },
    {
      "commit": "478abf08c6d2a95eef12e78d3b12857917a91872",
      "tree": "ad96443ea0af73261f4f546f25f6e32dfbe43fb0",
      "parents": [
        "38a03535e4abf24cda22a13e514454d9847b9682",
        "188b2bf98048b53df0c7ead9571160e83efeffbc"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Sep 21 21:00:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 21 21:00:56 2017 +0000"
      },
      "message": "Merge \"Revert^2 \"Verify profile wrt dex file in dex2oat\"\"\""
    },
    {
      "commit": "460ab793ac9ae8743e26d3f257fa163c1ee5e04a",
      "tree": "fbad991612a3468508bfea8172dccadf18e6793c",
      "parents": [
        "188b2bf98048b53df0c7ead9571160e83efeffbc"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Sep 21 13:44:07 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Sep 21 14:00:06 2017 -0700"
      },
      "message": "Verify NumberMethodId in profile and dex_file.\n\nBug: 62602192\nTest: test-art-host/target\nChange-Id: I44be559423b61d3c3202e9de8e3a699a02b4eaa2\n"
    },
    {
      "commit": "b8a55f8a62b1309efe52ec0290dfdcf60f34a550",
      "tree": "1f2a62ba7c4d4e95577414721cc274d0ee82fe7d",
      "parents": [
        "30744106517d64fb218ec5a96edbec797ad5a091"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 16:21:43 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 18:41:25 2017 +0100"
      },
      "message": "ART: Faster PrettyMethod().\n\nRewrite DexFile::PrettyMethod() to avoid copying strings.\nThis improves the performance, especially when requesting\nthe signature.\n\nAvoid code duplication in ArtMethod::PrettyMethod() and\ndelegate to DexFile::PrettyMethod().\n\n10 million invocations of ArtMethod/DexFile::PrettyMethod()\nfor \"void Main.main(java.lang.String[] args)\" with (+) or\nwithout (-) signature, time in ms:\n      host/32-bit  host/64-bit angler/32-bit angler/64-bit\nAM+: 10407-\u003e 5020  6374-\u003e 3302  32413-\u003e13140  17558-\u003e10003\nDF+:  7280-\u003e 4259  3881-\u003e 2828  19287-\u003e 9331  10343-\u003e 7375\nAM-:  2682-\u003e 1599  2025-\u003e 1186   7206-\u003e 4271   7447-\u003e 4166\nDF-:   861-\u003e  871   653-\u003e  640   1574-\u003e 1430   1828-\u003e 1712\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Ifb79abe1a7f4fc6adc10a34f5d49dc6681d06699\n"
    },
    {
      "commit": "188b2bf98048b53df0c7ead9571160e83efeffbc",
      "tree": "3776d250687f250906f2bdde92ebcfc38dbe36b3",
      "parents": [
        "208dd6076bdddcb04afb0397e4d4708f44a5dd60"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Sep 20 15:53:35 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Sep 21 08:59:30 2017 -0700"
      },
      "message": "Revert^2 \"Verify profile wrt dex file in dex2oat\"\"\n\nThis reverts commit 7b211a11007eebdcdb4a600ec27207049084b15e.\nMade changes in the checker code - now we are stripping out\ndex2oat warning from the output.\n\nBug: 62602192\nTest: art-test-host, target\nChange-Id: Ic92fc700fceb939a779bea1df9141b8856e9f12a\n"
    },
    {
      "commit": "5402edd0630cb6f30d98ff712ed914eadce6586c",
      "tree": "e0b59f92e71f7c465b1654634a4a525f2a411ac3",
      "parents": [
        "208dd6076bdddcb04afb0397e4d4708f44a5dd60",
        "d4215bba6f10bc952bdf54105ae81b5f45cb8df4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 21 00:31:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 21 00:31:31 2017 +0000"
      },
      "message": "Merge \"Unlink the vdex/oat file if we fail to compile succesfully\""
    },
    {
      "commit": "d4215bba6f10bc952bdf54105ae81b5f45cb8df4",
      "tree": "4dd30d740a4abe3c01a2579863068c047abc993c",
      "parents": [
        "1ad1e3f21d02d9f98a8cc527e756fe8795c20b6e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Sep 20 11:54:21 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Sep 20 13:41:20 2017 -0700"
      },
      "message": "Unlink the vdex/oat file if we fail to compile succesfully\n\nBug: 65857238\nTest: m test-art-host\nChange-Id: I85a215a8d1c912dbe169a84a5c6d582e7faa4fe7\n"
    },
    {
      "commit": "208dd6076bdddcb04afb0397e4d4708f44a5dd60",
      "tree": "832f29f0e62409f83ee1f0a7d22e1d9be840ec76",
      "parents": [
        "0a56392ccfd71635ceb743ff3c65699f3a0ec3aa",
        "672bcf5b537d93522d04313f77c0ffa0550f19cc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 20 19:26:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 19:26:47 2017 +0000"
      },
      "message": "Merge \"ART: Fix os \u003c\u003c std::string* errors\""
    },
    {
      "commit": "672bcf5b537d93522d04313f77c0ffa0550f19cc",
      "tree": "1a9d224a7ec86c241b746d4f32e83a866dee0a3d",
      "parents": [
        "b407afe983f8b106a5007d07aa2523ffc6525018"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 20:02:42 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 20 10:29:29 2017 -0700"
      },
      "message": "ART: Fix os \u003c\u003c std::string* errors\n\nFix some unintented pointer logging.\n\nTest: m\nChange-Id: I7d66ec2f33cc46588b6f549876241871f19ce995\n"
    },
    {
      "commit": "bf536c314afe6235af148d3017b9d9d56ba6da5f",
      "tree": "6d717fb2ac6e8a70cd8e3c679596a71cf2c694b8",
      "parents": [
        "b407afe983f8b106a5007d07aa2523ffc6525018",
        "1ad1e3f21d02d9f98a8cc527e756fe8795c20b6e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Sep 20 17:27:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 17:27:14 2017 +0000"
      },
      "message": "Merge \"Add more error logs to profile validation\""
    },
    {
      "commit": "b407afe983f8b106a5007d07aa2523ffc6525018",
      "tree": "3e7f082d1a8cafbf7a18f5b2f9833d4d18200933",
      "parents": [
        "93780a60090356921b844dbefdc13442c9f18b52",
        "335ee588ec4bc22be759f5e0fd4b972978e5ace6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 20 15:02:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 15:02:05 2017 +0000"
      },
      "message": "Merge \"ART: Fix incorrect logging\""
    },
    {
      "commit": "7452797678c4345d4a9e65b03e00af703c2c5fe0",
      "tree": "fd23d118a6317737a692402a648217418c3d7b99",
      "parents": [
        "3c683150bcf2f1cabbe2e5f9d10d8c670b67fb7e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 15:57:32 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 20 10:58:42 2017 +0100"
      },
      "message": "Refactor linker files from compiler/ to dex2oat/.\n\nThis shifts some code from the libart-compiler.so to dex2oat\nand reduces memory needed for JIT. We also avoid loading the\nlibart-dexlayout.so for JIT but the memory savings are\nminimal (one shared clean page, two shared dirty pages and\nsome per-app kernel mmap data) as the code has never been\nneeded in memory by JIT.\n\naosp_angler-userdebug file sizes (stripped):\n  lib64/libart-compiler.so: 2989112 -\u003e 2671888 (-310KiB)\n  lib/libart-compiler.so: 2160816 -\u003e 1939276 (-216KiB)\n  bin/dex2oat: 141868 -\u003e 368808 (+222KiB)\nLOAD/executable elf mapping sizes:\n  lib64/libart-compiler.so: 2866308 -\u003e 2555500 (-304KiB)\n  lib/libart-compiler.so: 2050960 -\u003e 1834836 (-211KiB)\n  bin/dex2oat: 129316 -\u003e 345916 (+212KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: cd art/; mma; cd -\nChange-Id: If62f02847a6cbb208eaf7e1f3e91af4663fa4a5f\n"
    },
    {
      "commit": "3c683150bcf2f1cabbe2e5f9d10d8c670b67fb7e",
      "tree": "c895af9e725c3b20a195cf7009f5e3e52a09854a",
      "parents": [
        "b92384853a8203b5936694c056515576e06fc435",
        "1cda7c2126d655cc9936c782f9dd33ec37b7f196"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 20 08:59:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 08:59:24 2017 +0000"
      },
      "message": "Merge \"Revert^2 \"ART: Remove workaround in verifer after Jack update.\"\""
    },
    {
      "commit": "b92384853a8203b5936694c056515576e06fc435",
      "tree": "9c84aabce32f0438934ed8f5a9bab4d827afb7a4",
      "parents": [
        "c4d71c3f96bfee0596a3b8a7e515e7d32da2c889",
        "7b211a11007eebdcdb4a600ec27207049084b15e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 20 08:46:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 08:46:06 2017 +0000"
      },
      "message": "Merge \"Revert \"Verify profile wrt dex file in dex2oat\"\""
    },
    {
      "commit": "7b211a11007eebdcdb4a600ec27207049084b15e",
      "tree": "2b9b6398727a7e6f74c5c4a4debdf5c9a9f50167",
      "parents": [
        "26765207bd51665f2413f37658b77c66391c6106"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 20 08:45:47 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 20 08:45:47 2017 +0000"
      },
      "message": "Revert \"Verify profile wrt dex file in dex2oat\"\n\nBug: 62602192\nBug: 65260586\n\nFails on device.\n\nThis reverts commit 26765207bd51665f2413f37658b77c66391c6106.\n\nChange-Id: I6cd54ff445828c39663156a8420224fd9a042c47\n"
    },
    {
      "commit": "c4d71c3f96bfee0596a3b8a7e515e7d32da2c889",
      "tree": "5d2f903e558cc7b45d2c3014d4892a03044c111d",
      "parents": [
        "ac7f970bdbd4ae9221d5ca8ed7b7b42a3fc95559",
        "bc61cb55af9f4543c3ecea4e68ba90630748876b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 20 03:55:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 03:55:24 2017 +0000"
      },
      "message": "Merge \"Fix DumpString to read the right amount of args\""
    },
    {
      "commit": "fd03f1ef004b194a3408f52a8812e1f47b21b6cc",
      "tree": "82ac30f682c5d34a17fe178e7b85967b6340d824",
      "parents": [
        "335ee588ec4bc22be759f5e0fd4b972978e5ace6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 17:10:10 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 18:29:41 2017 -0700"
      },
      "message": "ART: Improve double-JNI-load exception message\n\nTry to print the involved classloaders. The code is suboptimal\nand will not cache any intermediates, as this is an unexpected\nfailure - but aids in debugging application issues.\n\nAdd a test for the behavior of duplicate library loading in\nseparate classloaders. For ART, add a rough test for the pattern\nof the error message.\n\nBug: 65574359\nTest: m test-art-host\nTest: art/test/testrunner/testrunner.py -b --host -t 004-JniTest\nChange-Id: I6c6c7726a79172f39153d4a458eba4fb3e8e85b0\n"
    },
    {
      "commit": "335ee588ec4bc22be759f5e0fd4b972978e5ace6",
      "tree": "7f44eb9ac60623dfcbf135dc7419213b4bd3f4df",
      "parents": [
        "0588f3aa446b9eb96ee7452d4a4494684b41d039"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 17:09:52 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 18:29:09 2017 -0700"
      },
      "message": "ART: Fix incorrect logging\n\nPrint the string, not the pointer.\n\nBug: 65574359\nTest: m test-art-host\nTest: manual\nChange-Id: I6031de8b74359844584f8ca90ad91be665148f7a\n"
    },
    {
      "commit": "ac7f970bdbd4ae9221d5ca8ed7b7b42a3fc95559",
      "tree": "82b78fc6c07e741f5abfcf56680e9e3f3ea2a39e",
      "parents": [
        "0588f3aa446b9eb96ee7452d4a4494684b41d039",
        "26765207bd51665f2413f37658b77c66391c6106"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 20 01:21:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 20 01:21:17 2017 +0000"
      },
      "message": "Merge \"Verify profile wrt dex file in dex2oat\""
    },
    {
      "commit": "1ad1e3f21d02d9f98a8cc527e756fe8795c20b6e",
      "tree": "6b6c98ec9233945c035c1c8889a307a1539b868d",
      "parents": [
        "0588f3aa446b9eb96ee7452d4a4494684b41d039"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 19 18:20:37 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 19 18:21:15 2017 -0700"
      },
      "message": "Add more error logs to profile validation\n\nReplace a few DCHECKS with LOG(ERROR). It will avoid crashing and give\ninsights in what could cause the reported crash.\n\nBug: 65812889\nTest: m test-art-host\n\nChange-Id: I94a85997f865904208ef8e75c7aeb2c0911df765\n"
    },
    {
      "commit": "bc61cb55af9f4543c3ecea4e68ba90630748876b",
      "tree": "8c7516541ec425e5bae362895af877854ff12d60",
      "parents": [
        "08601a494e87dfba9b06f9fdea37c9342e4896d1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 19 16:58:28 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 19 18:03:15 2017 -0700"
      },
      "message": "Fix DumpString to read the right amount of args\n\nPreviously it read too many args in the case where dex_file was null.\n\nTest: test-art-host\nBug: 63756964\n\nChange-Id: Ic7cef41ea29ec3717debf657f9a93c17e804f50e\n"
    },
    {
      "commit": "0588f3aa446b9eb96ee7452d4a4494684b41d039",
      "tree": "dc1af5168b4b3cf63966aeb2bfd05c9e53d88d0d",
      "parents": [
        "8048bf6d13dd4492df8d59ecb795987558e2e579",
        "4584122ca1ec38e78efb2845375f91ca9e1fc71e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 19 23:39:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 23:39:33 2017 +0000"
      },
      "message": "Merge changes Ib4459783,Ibb40f919\n\n* changes:\n  ART: Remove suspend-check optimization\n  ART: Remove heap poisoning from globals.h\n"
    },
    {
      "commit": "26765207bd51665f2413f37658b77c66391c6106",
      "tree": "b2d34c7608679b4b073217359dc25f2e80a9b1e9",
      "parents": [
        "8048bf6d13dd4492df8d59ecb795987558e2e579"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Mon Jul 17 12:59:25 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Tue Sep 19 16:39:10 2017 -0700"
      },
      "message": "Verify profile wrt dex file in dex2oat\n\nTest: dex2oat with invalid profiles, 707-checker-invalid-profile\nBug: 62602192\nBug: 65260586\n\nChange-Id: I3af53275ab7bfa8bcc489a22f606dba2df4d41b1\n"
    },
    {
      "commit": "4584122ca1ec38e78efb2845375f91ca9e1fc71e",
      "tree": "de3893930c5e849be91d98ec01a337b91bd26e2e",
      "parents": [
        "09659c22dc2f2c85a0ade965d1fc5160944b8692"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 11:31:44 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 11:31:44 2017 -0700"
      },
      "message": "ART: Remove suspend-check optimization\n\nThis code has been untested and dead for a while. Remove it.\n\nTest: m (bullhead)\nTest: m (aosp_mips64)\nChange-Id: Ib44597830c4be4db97420c910e716048308e9afa\n"
    },
    {
      "commit": "486b1b3af37c4a830350689c2bfc969ab2b1b1d8",
      "tree": "b19121f7c47504cb268f08c403366963ff3c96d1",
      "parents": [
        "8ffe25c56117edfd7e618c9f5028b749ee94c8fd",
        "04bb35a12cd6ebf4049b0509998f1f166eb59c6b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 18:23:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 18:23:09 2017 +0000"
      },
      "message": "Merge \"Fix exclusive_owner_ spelling\""
    },
    {
      "commit": "04bb35a12cd6ebf4049b0509998f1f166eb59c6b",
      "tree": "a544cf1168902cb88135277a65fe13dd8794b636",
      "parents": [
        "0882af2e3ca253184b6ab56a8966a2f37407144e"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Sep 19 11:01:40 2017 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Sep 19 11:07:02 2017 -0700"
      },
      "message": "Fix exclusive_owner_ spelling\n\n... to fix Mac build breakage.\n\nTest: Grep for exclusive_owner_ misspellings + TreeHugger\n\nBug: 65171052\nChange-Id: I15eec0651b2d6d8ce20a8a906c5943c0f1aaa7fe\n"
    },
    {
      "commit": "09659c22dc2f2c85a0ade965d1fc5160944b8692",
      "tree": "66fd5729395d27569c4d9d255a5ce9b44cb000bf",
      "parents": [
        "4d159807a4854caa6396b708a38bbd6fa49d736f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 18:23:32 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 10:26:51 2017 -0700"
      },
      "message": "ART: Remove heap poisoning from globals.h\n\nRemove mostly-unused include and move it to its users.\n\nTest: m\nChange-Id: Ibb40f919db64a490290c6e18cf1123aaf44199fc\n"
    },
    {
      "commit": "4d159807a4854caa6396b708a38bbd6fa49d736f",
      "tree": "25c2ea8ce12881cf26c933c89a0a3096d260de46",
      "parents": [
        "08601a494e87dfba9b06f9fdea37c9342e4896d1",
        "0882af2e3ca253184b6ab56a8966a2f37407144e"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Sep 19 16:37:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 16:37:30 2017 +0000"
      },
      "message": "Merge \"Shrink ART Mutex exclusive_owner_ field to Atomic\u003cpid_t\u003e\""
    },
    {
      "commit": "08601a494e87dfba9b06f9fdea37c9342e4896d1",
      "tree": "ed88da37b072b8e65d61373068912f00924b1f54",
      "parents": [
        "216ba99075c650822585b92c37161aabd45f74a0",
        "217d6d3cd0b78966178ab93cd221dbb2865048ee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 19 15:29:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 15:29:07 2017 +0000"
      },
      "message": "Merge changes I38b16291,I159669ec\n\n* changes:\n  ART: Remove old code\n  ART: Move read barrier config out of globals\n"
    },
    {
      "commit": "e1fe6a98d43118fe0698b5122339c7af072fc418",
      "tree": "46ba2d257be9267b3439bc879b9ba4688c3b02cd",
      "parents": [
        "560b7c8f7fbec6df9c5e2e64892686f1b19c7373",
        "68bf3903250ff0bea11c4705ba331818c5bf5792"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 19 11:47:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 11:47:58 2017 +0000"
      },
      "message": "Merge \"Handle new zygote flags in ART\""
    },
    {
      "commit": "560b7c8f7fbec6df9c5e2e64892686f1b19c7373",
      "tree": "3fc3cc48bd6cb0a49ff6d8defbf2da0c55b76692",
      "parents": [
        "67246e9693e8fdb3b9edd101242e54586ed3fd5a",
        "60454cb6094f33ea6b2194f46387b30073b91cb0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 19 11:18:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 11:18:35 2017 +0000"
      },
      "message": "Merge \"MIPS: Follow-up to \"Allow deoptimization when returning from a runtime method\"\""
    },
    {
      "commit": "60454cb6094f33ea6b2194f46387b30073b91cb0",
      "tree": "2cd9344814b2a335423417ccffa3427e17b35fa9",
      "parents": [
        "61add1d9dcd11d86253b218a8feeafa642bc4941"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Aug 09 21:28:30 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Sep 19 01:38:04 2017 -0700"
      },
      "message": "MIPS: Follow-up to \"Allow deoptimization when returning from a runtime method\"\n\nThis is a MIPS-specific follow-up to\nhttps://android-review.googlesource.com/442545.\n\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: testrunner.py --target --optimizing\nTest: same tests as above on CI20\nTest: booted MIPS32R2 in QEMU\n\nBug: 33616143\n\nChange-Id: I3478f1ac332b0b97578225fd55ac0fccdfa4e33f\n"
    },
    {
      "commit": "dbeacd6f1687439bd391bdd6a66a4b48d7d45ebf",
      "tree": "97ab216c77bd586e93beb5074c558b4729a97cb5",
      "parents": [
        "da6f3eee076aced30fdfdc75604509cde516c307",
        "fc8b422c286501346b5b797420fb616aaa5e952a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 18 20:03:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 20:03:45 2017 +0000"
      },
      "message": "Merge \"Clean up AtomicDexRefMap\""
    },
    {
      "commit": "217d6d3cd0b78966178ab93cd221dbb2865048ee",
      "tree": "cbed5f71f5ebfc98044559ec7835bbdd1ddb339f",
      "parents": [
        "217488a9ddf351033c1688198c492b9c40c36d8a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 12:48:20 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 12:50:43 2017 -0700"
      },
      "message": "ART: Remove old code\n\nRemove unused Quick compiler flag.\n\nRemove support for arm32 soft-float code (which is no longer\nsupported by our compiler).\n\nTest: m\nChange-Id: I38b16291d90094dbf26776923a46afbf8de53f20\n"
    },
    {
      "commit": "217488a9ddf351033c1688198c492b9c40c36d8a",
      "tree": "98dc5553e2538b9b508c1837bc27b383d73b7149",
      "parents": [
        "e16ed6da590e717e28c07e2c9d1b342efc678870"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 08:34:42 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 12:50:43 2017 -0700"
      },
      "message": "ART: Move read barrier config out of globals\n\nReduce the global dependencies by refactoring where the read\nbarrier constants are defined.\n\nRename read_barier_c.h to read_barier_config.h and ifdef the\nC++ parts to have a common header for both C/asm and C++.\n\nPut heap poisoning configuration into its own minimal header.\n\nFix up transitive includes.\n\nTest: m\nChange-Id: I159669ec61e3d1c4c7ddcd79e63b023a0519717a\n"
    },
    {
      "commit": "da6f3eee076aced30fdfdc75604509cde516c307",
      "tree": "fa356f860d4cd5d202b568202d32d9ecd37bb73a",
      "parents": [
        "e16ed6da590e717e28c07e2c9d1b342efc678870",
        "417528d9635500dc20921219a8adac6238a94074"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Sep 18 19:03:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 19:03:57 2017 +0000"
      },
      "message": "Merge \"Refactor artQuickToInterpreterBridge to fix a perf regression\""
    },
    {
      "commit": "04c6ab9266876137c9b46b69391aa2820cd56600",
      "tree": "1580e08b7a8e73197c64b499540ec613b755a6e1",
      "parents": [
        "e2abbc604ce003c776c00ecf1293796bb4c4ac5a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 21:49:14 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 11:36:24 2017 -0700"
      },
      "message": "ART: Forward declarations for InvokeType\n\nUse forward declarations in other header files.\n\nTest: m\nChange-Id: I8ef4492b6c48ff20d4d77d0516eacd362ed210bc\n"
    },
    {
      "commit": "e2abbc604ce003c776c00ecf1293796bb4c4ac5a",
      "tree": "f7d124d1861cad2162c30dfe932bb4e1beaf41ef",
      "parents": [
        "7090dfe84f78b1928fcbdfd664d0dd9ea52633ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 15 11:59:26 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 11:36:24 2017 -0700"
      },
      "message": "ART: Move kDexNoIndex to dex_file_types.h\n\nDefine the constant with the types to allow lowering the dependency\non DexFile.\n\nTest: m\nChange-Id: I3c61421db45be96d2057e01b1a7825883d8bd178\n"
    },
    {
      "commit": "fc8b422c286501346b5b797420fb616aaa5e952a",
      "tree": "61c857a895cdad9ce387a899f92824701259df32",
      "parents": [
        "7090dfe84f78b1928fcbdfd664d0dd9ea52633ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Sep 17 13:44:24 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 18 10:57:06 2017 -0700"
      },
      "message": "Clean up AtomicDexRefMap\n\nMake ClassReference, TypeReference, and MethodReference extend\nDexFileReference. This enables using all of these types as the key\nfor AtomicDexRefMap.\n\nTest: test-art-host\nBug: 63851220\nBug: 63756964\n\nChange-Id: Ida3c94cadb53272cb5057e5cebc5971c1ab4d366\n"
    },
    {
      "commit": "68bf3903250ff0bea11c4705ba331818c5bf5792",
      "tree": "fe6c88466f3ee941232efd5ad2fdb9b3b03c7f76",
      "parents": [
        "fe712a8b9c247d66df013f2b4b6faa6009d745bb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 07 14:40:48 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 18 13:00:20 2017 +0100"
      },
      "message": "Handle new zygote flags in ART\n\nAdd support for DISABLE_VERIFIER and ONLY_USE_SYSTEM_OAT_FILES.\n\nbug: 30972906\nbug: 63920015\n\nTest: device boots\nChange-Id: I7c4eddc070908aed980d54d374c0b261d1f32d57\n"
    },
    {
      "commit": "fe712a8b9c247d66df013f2b4b6faa6009d745bb",
      "tree": "45897680a8f1897b6d33c3bccfad859bb6d9abe0",
      "parents": [
        "3597f51c4af8d5e32c21789ea7b7cd75dc078120",
        "486dda03900a215650f71a9068759978aa77c699"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 18 08:28:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 08:28:15 2017 +0000"
      },
      "message": "Merge \"Add support for registering classpath classes status.\""
    },
    {
      "commit": "7a06e4a826c73ef20e0a9ed3d4642d656137c00d",
      "tree": "d63a723dd468417597ac7e5a54565eea97fdf078",
      "parents": [
        "72e80c66e6ab46859eeff46226dc1bcaf6848aa9",
        "0ae15326456aaab7717c09b07eaf2d766dbaadda"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 19:26:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 19:26:31 2017 +0000"
      },
      "message": "Merge \"tools: Add new titrace tool to print dynamic instruction counts\""
    },
    {
      "commit": "72e80c66e6ab46859eeff46226dc1bcaf6848aa9",
      "tree": "26a43553284d972ca763c01c48fad90f2a6f5bfa",
      "parents": [
        "c5e7180231f6703925557ffaf8bc64615219e078",
        "41006c6e8c0c5132a22bb7e100b6cd545dbb55a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 18:47:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 18:47:46 2017 +0000"
      },
      "message": "Merge changes Ia3f19f0f,I0fe8038e\n\n* changes:\n  Implement JVMTI GetCurrentContendedMonitor\n  Add support for JVMTI monitor events.\n"
    },
    {
      "commit": "c5e7180231f6703925557ffaf8bc64615219e078",
      "tree": "f99e65a2c215fe049edc591d3d441ba1f150a808",
      "parents": [
        "afdab8d7e57f05b7cc4f0babbc1ec04bf91b4867",
        "aa0912c4e91759441ce717f4f2089078e0e2a3d1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 18:25:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 18:25:56 2017 +0000"
      },
      "message": "Merge \"Do not fill DexCache methods in resolution trampoline.\""
    },
    {
      "commit": "417528d9635500dc20921219a8adac6238a94074",
      "tree": "8431ea7565243b565d7f8cd829999547e1a6db73",
      "parents": [
        "49a6f39a8d861a5e887a3611031a23e2efd2d991"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 13 12:10:40 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Sep 15 11:04:06 2017 -0700"
      },
      "message": "Refactor artQuickToInterpreterBridge to fix a perf regression\n\nCL 472840 adds a parameter to PopDeoptimizationContext() which for some\nunknown reason makes its caller artQuickToInterpreterBridge() unhappy\nin performance. To workaround the issue, this change refactors\nartQuickToInterpreterBridge() and puts deoptimization handling in its\nown method. This reduces the size of artQuickToInterpreterBridge() and\nmakes the performance regression disappear.\n\nTest: run-test on host. android.graphics.perftests.PaintMeasureTextTest.\nBug: 65159206\nChange-Id: I386ff7814fee963097bbc2418c9654f4fca9751d\n"
    },
    {
      "commit": "0ae15326456aaab7717c09b07eaf2d766dbaadda",
      "tree": "b323ea082a55dacaf348ad3f687cec536b66997b",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 14 13:55:06 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 15 10:22:18 2017 -0700"
      },
      "message": "tools: Add new titrace tool to print dynamic instruction counts\n\nImplemented on top of the Tooling Interface (jvmti.h) and works on both\nRI and ART (host/target). See README.md for more details.\n\nExample usage:\n\n$\u003e make libtitrace\n$\u003e java -agentpath:out/host/linux-x86/lib64/libtitrace.so helloworld\n  Hello\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 TI Trace // Summary\n  ++++++++++++++++++++++++++++++++++++++++++++++++\n     * Single step counter: 405982\n  +++++++++++    Instructions Count   ++++++++++++\n     * aconst_null(op:1), count: 734, % of total: 0.180796\n     * iconst_m1(op:2), count: 470, % of total: 0.115769\n     * iconst_0(op:3), count: 4246, % of total: 1.04586\n     * iconst_1(op:4), count: 3585, % of total: 0.883044\n     * iconst_2(op:5), count: 1068, % of total: 0.263066\n     ............\n\nTest: manual\nChange-Id: I0cd1f4f88e54cf8612641128230b8e93157b48ea\n"
    },
    {
      "commit": "aa0912c4e91759441ce717f4f2089078e0e2a3d1",
      "tree": "4777dcbb7bd5ded78408d487f9302ab73297b02a",
      "parents": [
        "d0e4c9d1137f0680307f5c1b630008aacdcf3da8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 15 13:30:06 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 15 17:17:44 2017 +0100"
      },
      "message": "Do not fill DexCache methods in resolution trampoline.\n\nStoring the methods in DexCache was done for performance\nreasons back when compiled code used the DexCache for method\ncalls. HInvokeStaticOrDirect does not use the DexCache since\nreplacing the kDexCachePcRelative with kBssEntry in\n    https://android-review.googlesource.com/399312 ,\nso we do not need to populate the DexCache for performance\nreasons.\n\nThe storing of the ArtMethod* for invoke-super was also\nerroneous as it may have stored a method in a slot that\nreferences a class not present in the associated ClassTable.\nThis led to crashes when subsequently trying to resolve the\nmethod and check for ICCE from JIT.\n\nTherefore we remove the code that stores the method, both\nfor the crashing invoke-super case and the obsolete\ninvoke-static case (introduced due to bug 19175856).\n\nTest: 164-resolution-trampoline-dex-cache\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 64759619\nChange-Id: Ieee68d3c6a731e61bc8115085c1e027af199fc59\n"
    },
    {
      "commit": "afdab8d7e57f05b7cc4f0babbc1ec04bf91b4867",
      "tree": "17c5ff49e36a43e9f8564b1e7b7b29448d39bf8f",
      "parents": [
        "9e76f430e7b923cfeff7cc2d5baae0266eb5a2f5",
        "05f47743e604e9b3b1de9ec930c6af6d9780c440"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 15 16:09:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 16:09:30 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Make WatchedFramePop instrumentation event pure-virtual\"\"\""
    },
    {
      "commit": "486dda03900a215650f71a9068759978aa77c699",
      "tree": "1f2a1331d3ec474c979db5f9a35dd11f453abc25",
      "parents": [
        "b072ec25f8a71420ee77b068a28a2669420f6150"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 11 14:15:52 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 15 12:45:28 2017 +0100"
      },
      "message": "Add support for registering classpath classes status.\n\nBy doing class unloading after each dex file compilation, we are loosing\naway verification done on classpath classes.\n\nThis change introduces a new table for keeping around class status of\nclasspath classes.\n\nMultidex quickening compilation improved by ~5% by not re-verifying classpath\nclasses.\n\nBug: 63467744\n\ntest: test.py\ntest: golem successfully compiles FB\nChange-Id: I629c0a7d86519bbc516f5e59f7cd92ca6ca842eb\n"
    },
    {
      "commit": "44e5efa4ae79cf76c65f37fc41c1fa0ed431ec4a",
      "tree": "7f144c75386ca4584455bfa87c356824f4aadfb9",
      "parents": [
        "c5b215f7004c46a274a54e232f0cd146c7494f9a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 12 00:54:26 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 14 16:29:15 2017 -0700"
      },
      "message": "Add check that classpath is up to date to getDexOptNeeded\n\nExtend getDexOptNeeded to factor into the decision the expected class\nloader context. If the context does not match, oat file assistant and\ndexoptanalyzer will advise kDex2OatFromScratch.\n\nNote that this does not currently extend the java side\nDexFile.getDexOptNeeded. The calls coming from the java side will continue\nto ignore the classpath checks by passing null as the class loader\ncontext.\n\nBug: 62269291\nTest: m test-art-host\nChange-Id: Ia01728c06810e418bbcbfe2a774d1f904d2525ba\n"
    },
    {
      "commit": "c5b215f7004c46a274a54e232f0cd146c7494f9a",
      "tree": "b0e628ec0c22aa1d23c42bc63a323f43358f7eba",
      "parents": [
        "5809417697955005751d60498964f6d4bd4a096f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 12 14:49:37 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 14 16:28:50 2017 -0700"
      },
      "message": "Update the context classpath after the dex files are opened.\n\nThe classpath stored in the context maybe be out of sync with the list of\nopened dex files if any of the dex file is a multidex or cannot be opened.\n\nThis CL ensures that OpenDexFiles updates the classpath with the dex file\nlocations that were open.\n\nThe change does not affect the current use of ClassLoaderContext. It is a\npreparatory step for b/62269291\n\nBug: 62269291\nTest: m test-art-host-gtest-class_loader_context_test\nChange-Id: Ibe675df9b2c06a4df8189f0d72df8b4061603a0e\n"
    },
    {
      "commit": "77fee87b262e969b29a9ac121a8bcbf87b68d9ce",
      "tree": "3280ba8d887045217bfbcb81eb624f571eeee7d0",
      "parents": [
        "ec995142998f6c7371734e6df95b5e2c80b18d27"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 05 14:51:49 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 14 09:57:03 2017 -0700"
      },
      "message": "Add support for JVMTI monitor events.\n\nAdds support for the JVMTI can_generate_monitor_events capability and\nall associated events. This adds support for the\nJVMTI_EVENT_MONITOR_WAIT, JVMTI_EVENT_MONITOR_WAITED,\nJVMTI_EVENT_MONITOR_CONTENDED_ENTER, and\nJVMTI_EVENT_MONITOR_CONTENDED_ENTERED events.\n\nBug: 65558434\nBug: 62821960\nBug: 34415266\n\nTest: ./test.py --host -j50\n\nChange-Id: I0fe8038e6c4249e77d37a67e5056b5d2a94b6f48\n"
    },
    {
      "commit": "05f47743e604e9b3b1de9ec930c6af6d9780c440",
      "tree": "9c4342297a37c3cfe22c69ef9f7d82f722006431",
      "parents": [
        "b2c8fc62f4e7889300da2d26294537194e37b926"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 14 00:34:44 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 14 00:34:44 2017 +0000"
      },
      "message": "Revert \"Revert \"Make WatchedFramePop instrumentation event pure-virtual\"\"\n\nForgot to revert this.\n\nThis reverts commit b2c8fc62f4e7889300da2d26294537194e37b926.\n\nReason for revert: Fixed issue with tests\n\nChange-Id: I1fd5a2759c67a906d55137e2b6548726af2c8e4f\nTest: treehugger\n"
    },
    {
      "commit": "0882af2e3ca253184b6ab56a8966a2f37407144e",
      "tree": "dc61cf0d66ec576c6b2e3b78b5fb304afd6994c9",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 31 15:21:57 2017 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Sep 13 13:15:12 2017 -0700"
      },
      "message": "Shrink ART Mutex exclusive_owner_ field to Atomic\u003cpid_t\u003e\n\nThe old volatile uint64_t version had a data race, and was thus\ntechnically incorrect. Since it\u0027s unclear whether volatile uint64_t\nupdates are actually atomic on 32-bit platforms, even the informal\ncorrectness argument here already effectively assumed that the upper\n32 bits were zero. Don\u0027t store them. Explicitly complain if a pid_t\nmight be too big to support lock-free atomic operations.\n\nRemove many explicit references to exclusive_owner to avoid\nlittering the code with LoadRelaxed calls.\n\nThe return convention for GetExclusiveOwnerTid() was unclear\nfor the shared ownership case. It was previously treated\ninconsistently as 0 (pthread locks), (uint64_t)(-1U) and\n(uint64_t)(-1). Make it as consistent as easily possible, and\ndocument remaining weirdness.\n\nBug: 65171052\n\nTest: AOSP builds. Host tests pass.\n\nChange-Id: Ia99aca268952597a90b3c798b714cddbdc2c365e\n"
    },
    {
      "commit": "d0e4c9d1137f0680307f5c1b630008aacdcf3da8",
      "tree": "b706b76ca9ac5a8c198393df429ea8d1e274acf2",
      "parents": [
        "640a32f7d7ed4f4720282c63e4aa5ab62dbcd9ee",
        "e9691f5ef14de049a1bbffb344049641d7fcd73b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 13 14:24:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 13 14:24:36 2017 +0000"
      },
      "message": "Merge \"ART: Do not add Proxy prototype methods to their dex cache.\""
    },
    {
      "commit": "e9691f5ef14de049a1bbffb344049641d7fcd73b",
      "tree": "ffec6bb7adbd4d01aa8b051f281ef2df9c738a6c",
      "parents": [
        "61add1d9dcd11d86253b218a8feeafa642bc4941"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 13 13:32:12 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 13 13:32:12 2017 +0100"
      },
      "message": "ART: Do not add Proxy prototype methods to their dex cache.\n\nThis work is really unnecessary since\n    https://android-review.googlesource.com/460136 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Id3ac5be338b827dce73cb8f82cf162f976864d54\n"
    },
    {
      "commit": "640a32f7d7ed4f4720282c63e4aa5ab62dbcd9ee",
      "tree": "0acf91737b29f2c4659968478e0946c5d36afe9f",
      "parents": [
        "857a1605b93e85e75f3dcb8cec8446f19dbf9b70",
        "a710d91a57c5c7de0f448c2dbfaa24cac53b52f9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 13 11:28:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 13 11:28:14 2017 +0000"
      },
      "message": "Merge \"ART: Pass current Thread* to Jit::ShouldUsePriorityThreadWeight().\""
    },
    {
      "commit": "a710d91a57c5c7de0f448c2dbfaa24cac53b52f9",
      "tree": "8d987bdd9c971f2dbf2ad30265b17c88a24c9ded",
      "parents": [
        "61add1d9dcd11d86253b218a8feeafa642bc4941"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 12 14:56:07 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 13 10:24:19 2017 +0100"
      },
      "message": "ART: Pass current Thread* to Jit::ShouldUsePriorityThreadWeight().\n\nAnd avoid some instructions from REFRESH_IBASE on x86-64.\n\nTest: testrunner.py --host --interpreter --jit\nTest: testrunner.py --target --interpreter --jit on Nexus 6P\nChange-Id: Id42545d0d8fb8db0659b6c937ed7e8106d1dcfdb\n"
    },
    {
      "commit": "857a1605b93e85e75f3dcb8cec8446f19dbf9b70",
      "tree": "4ee985c97f53e3923e1400fb85194f9dcf32d62a",
      "parents": [
        "89c2f5edb096a82b5271b4671f40e4608a6cb14e",
        "5510c0aac1fa3512d228e10af609a3ad43bbb33b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 13 08:08:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 13 08:08:47 2017 +0000"
      },
      "message": "Merge \"Rename debugFlags to runtimeFlags.\""
    },
    {
      "commit": "c4cb7c143d8acdbacf5276991df6f0aa83ab1f35",
      "tree": "096b95eafc2b6f514cfc6d04958bf61fc482b467",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 19:57:48 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 12 15:15:31 2017 -0700"
      },
      "message": "ART: Clear JniConstants on shutdown\n\nTo permit a new runtime to repopulate the JniConstants cache,\ncall ClearJniConstantsCache() on shutdown.\n\nBug: 65522645\nTest: m\nTest: m test-art-host\nChange-Id: I340cc2ced6b2e5bcd541f1d7b9741574e37c27eb\n"
    },
    {
      "commit": "6b411fc9fd94da3c552d8b96cee14f6414e7b734",
      "tree": "eaa492fe65b0a9c33b8db54d5f782bf2509d7c9d",
      "parents": [
        "51bee8bf9a0abfe0774c3a4717ac66336572c066",
        "0a5ec3dde72d93111a1cfe229e4f1888f06a9541"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 12 16:24:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 16:24:26 2017 +0000"
      },
      "message": "Merge \"Don\u0027t deoptimize everything with can_access_local_variables\""
    },
    {
      "commit": "51bee8bf9a0abfe0774c3a4717ac66336572c066",
      "tree": "7b58b8aefd69f9076461c3792fd2437a3a347fd0",
      "parents": [
        "6c8151ffa3c8f77756aa8d0af898b9302bb2ecab",
        "496b8834b67f44320b4e0446769f110f6febe180"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Sep 12 16:01:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 16:01:06 2017 +0000"
      },
      "message": "Merge \"Revert \"ART: additional info SIGILL\"\""
    },
    {
      "commit": "5510c0aac1fa3512d228e10af609a3ad43bbb33b",
      "tree": "8b95b03677f1a89e84dc12e40d8641774ed57b23",
      "parents": [
        "61add1d9dcd11d86253b218a8feeafa642bc4941"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 12 15:11:37 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 12 15:42:52 2017 +0100"
      },
      "message": "Rename debugFlags to runtimeFlags.\n\nbug: 30972906\nbug: 63920015\n\nTest: builds\nChange-Id: Id5cc649276d6b8528a43624d432571063f72f9c1\n"
    },
    {
      "commit": "496b8834b67f44320b4e0446769f110f6febe180",
      "tree": "1fe0d131119041057224969687c9e0eac8c78444",
      "parents": [
        "fe30b3e2815c6140471338df5d903a2c1d242414"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Sep 11 16:54:57 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Sep 12 08:41:05 2017 +0100"
      },
      "message": "Revert \"ART: additional info SIGILL\"\n\nThis reverts commit 0cff0b0956145a192865bef4896c771e164d0a3a.\n\nReason for revert: insufficient coverage for intended purpose per follow-up\ndiscussion on initial CL.\n\nBug: 65312375\nTest: m -j32\nChange-Id: I3cf94207ddd93d6030d80f681613e2a7e8b2fd66\n"
    },
    {
      "commit": "61add1d9dcd11d86253b218a8feeafa642bc4941",
      "tree": "35c1eb13dfc4394a62e4856183f6fef657268e89",
      "parents": [
        "6d525fd408fb9ad914e4b1e28fd16c928175a5f2",
        "d972b427d49d75ba62bd80495ef706771504ac71"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Sep 12 03:48:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 03:48:10 2017 +0000"
      },
      "message": "Merge \"Random comment typo fixes\""
    },
    {
      "commit": "d972b427d49d75ba62bd80495ef706771504ac71",
      "tree": "5dd04819ed6d73c76d0f31dc4395083c296c4e4c",
      "parents": [
        "47d00f6c4657af33c3cc29783c0f2eb156aa1449"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Sep 11 12:57:00 2017 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Sep 11 15:40:34 2017 -0700"
      },
      "message": "Random comment typo fixes\n\nDiscovered while trying to understand this code ...\n\nTest: Build platform.\n\nChange-Id: I606bf8b07375513699e12f31f771c2a7677b6766\n"
    },
    {
      "commit": "a49e053faa4a254df1f21e055cb73555de241cfc",
      "tree": "bed0e8f0934550d4329c0aed10f016c884c6750f",
      "parents": [
        "47d00f6c4657af33c3cc29783c0f2eb156aa1449"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Aug 25 08:05:29 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Sep 11 15:31:00 2017 -0700"
      },
      "message": "Show ArtMethods in imgdiag\n\nSince ArtMethods were moved out of mirror:: classes imgdiag does not\nshow information about them.  Diff ArtMethods to facilitate finding\ndirty memory there.\n\nBug: 38173645\nTest: imgdiag --boot-image\u003d/system/framework/boot.art --image-diff-pid\u003d`pid system_server`\nChange-Id: Icd86a9ef14d5177a297026c22c81c080f5c85fc1\n"
    },
    {
      "commit": "47d00f6c4657af33c3cc29783c0f2eb156aa1449",
      "tree": "5e0d77956ffe8fc6b6b3f70f702bf21f32d67f8f",
      "parents": [
        "1ffbc05e2a2bd70fcf34a2acd88c21fdcf3c56ff",
        "a7c83ac563a8f25174ac8826f7fb87bd0a9da9fb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 11 20:50:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 20:50:21 2017 +0000"
      },
      "message": "Merge changes I88fd4905,Ib8c0a28c\n\n* changes:\n  ART: Clean up WellKnownClasses include.\n  ART: Clear WellKnownClasses on shutdown\n"
    },
    {
      "commit": "0a5ec3dde72d93111a1cfe229e4f1888f06a9541",
      "tree": "a9fc32ec94da5c1c59c72f083253b8f997611bc3",
      "parents": [
        "82629c9182dffb823f05dec30f7ac72cf8fb3ba5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 25 16:50:26 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Sep 11 11:05:24 2017 -0700"
      },
      "message": "Don\u0027t deoptimize everything with can_access_local_variables\n\nChange the can_access_local_variables setup to not need to deoptimize\neverything immediately. Instead ensure all methods are\nasync-deoptimizable and deoptimize the thread we are examining prior\nto examining the stack.\n\nTest: ./test.py --host -j50\nBug: 33616143\nBug: 34414073\nChange-Id: I312a4865c09e63a8d3fe3b2d201f1c071fb4305f\n"
    },
    {
      "commit": "9d9f2d7782545082a22b3630ec75aa5a7e887582",
      "tree": "1210668cbd5b35a0d1f6c1f83f766979c7a780b2",
      "parents": [
        "fe30b3e2815c6140471338df5d903a2c1d242414",
        "94ec2db21332ee1dcdbbf254b99a9a999a304fe0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 11 16:55:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 16:55:32 2017 +0000"
      },
      "message": "Merge \"Use mmapped boot image class table for PIC app HLoadClass.\""
    },
    {
      "commit": "a7c83ac563a8f25174ac8826f7fb87bd0a9da9fb",
      "tree": "23ca6d02cd6fd7054bc4511a3f5ec346c4f9173d",
      "parents": [
        "db48a79e49a900e255c1a472d6436a655016125f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 08:14:23 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 08:14:23 2017 -0700"
      },
      "message": "ART: Clean up WellKnownClasses include.\n\nDelete an unnecessary include propagating the WellKnownClasses\nfar to widely, and instead fix some transitive users.\n\nTest: m\nChange-Id: I88fd49057afe4ddcc548b979baafb8b8682d78ae\n"
    },
    {
      "commit": "db48a79e49a900e255c1a472d6436a655016125f",
      "tree": "76aceef48f11dd471782d73b75d1fe800916eb3d",
      "parents": [
        "fe30b3e2815c6140471338df5d903a2c1d242414"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 08 22:18:30 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 08:14:10 2017 -0700"
      },
      "message": "ART: Clear WellKnownClasses on shutdown\n\nThe members go stale on shutdown, so delete them. This also works\naround a startup bug that is relying on null members.\n\nBug: 65500943\nTest: m test-art-host\nChange-Id: Ib8c0a28c4b6509a0614a12e123b73e7c117db319\n"
    },
    {
      "commit": "94ec2db21332ee1dcdbbf254b99a9a999a304fe0",
      "tree": "6ced7e596731b61f95a3693f336527f55ea3cf3a",
      "parents": [
        "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 06 17:21:03 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 11 15:12:51 2017 +0100"
      },
      "message": "Use mmapped boot image class table for PIC app HLoadClass.\n\nImplement new HLoadClass load kind for boot image classes\nreferenced by PIC-compiled apps (i.e. prebuilts) that uses\nPC-relative load from a boot image ClassTable mmapped into\nthe apps .bss. This reduces the size of the PIC prebuilts\nthat reference boot image classes compared to the kBssEntry\nas we can completely avoid the slow path and stack map\nunless we need to do the class initialization check.\n\nPrebuilt services.odex for aosp_angler-userdebug (arm64):\n  - before: 20312800\n  - after: 19775352 (-525KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --pictest\nTest: testrunner.py --target on Nexus 6P.\nTest: testrunner.py --target --pictest on Nexus 6P.\nTest: Nexus 6P boots.\nBug: 31951624\nChange-Id: I13adb19a1fa7d095a72a41f09daa6101876e77a8\n"
    },
    {
      "commit": "d4d11822e349e7e4af0b43cb3fc69e14f1c95475",
      "tree": "4182e25cf642e9a6e62c24c3d3561220ffbae30a",
      "parents": [
        "f6dcede6568e3fe71da8db8d1414fab98ce4bec6",
        "f26bb6c74a973fde3d2783ac35324d5ce8def814"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 21:10:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 21:10:45 2017 +0000"
      },
      "message": "Merge \"ARM64: Tune SIMD loop unrolling factor heuristic.\""
    },
    {
      "commit": "86ce50481f91e3be2e5f2686e18e11babde721ae",
      "tree": "3179155108b883d8c0c4bb3dbac0b70db0d7f698",
      "parents": [
        "88f929ce72a5eabdb1ae1b32e5ec157d0e9f1ef8",
        "dd018df8a00e841fe38fabe38520b7d297a885c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 08 16:16:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 16:16:46 2017 +0000"
      },
      "message": "Merge \"optimizing: add block-scoped constructor fence merging pass\""
    },
    {
      "commit": "dd018df8a00e841fe38fabe38520b7d297a885c1",
      "tree": "4974b4f718d9cbb5910df7f476f2581aff1a17e2",
      "parents": [
        "6ef45677305048c2bf0600f1c4b98a11b2cfaffb"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 09 10:38:31 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 08 14:06:32 2017 +0000"
      },
      "message": "optimizing: add block-scoped constructor fence merging pass\n\nIntroduce a new \"Constructor Fence Redundancy Elimination\" pass.\nThe pass currently performs local optimization only, i.e. within instructions\nin the same basic block.\n\nAll constructor fences preceding a publish (e.g. store, invoke) get\nmerged into one instruction.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nOptStat#ConstructorFenceGeneratedNew:   43825\nOptStat#ConstructorFenceGeneratedFinal: 17631  \u003c+++\nOptStat#ConstructorFenceRemovedLSE:     164\nOptStat#ConstructorFenceRemovedPFRA:    9391\nOptStat#ConstructorFenceRemovedCFRE:    16133  \u003c---\n\nRemoves ~91.5% of the \u0027final\u0027 constructor fences in RitzBenchmark:\n\n(We do not distinguish the exact reason that a fence was created, so\nit\u0027s possible some \"new\" fences were also removed.)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTest: art/test/run-test --host --optimizing 476-checker-ctor-fence-redun-elim\nBug: 36656456\nChange-Id: I8020217b448ad96ce9b7640aa312ae784690ad99\n"
    },
    {
      "commit": "88f929ce72a5eabdb1ae1b32e5ec157d0e9f1ef8",
      "tree": "6e4c293998044975d91596032d9f193dc41bad8f",
      "parents": [
        "c54e4cfa995fcd5a8457b3424fada36c560c9789",
        "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 08 11:27:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 11:27:33 2017 +0000"
      },
      "message": "Merge \"Use mmapped boot image intern table for PIC app HLoadString.\""
    },
    {
      "commit": "1f418c1a3605bb2e19a12b2ee0d32bdd51fad650",
      "tree": "d20c007fb5db6594c593a99114642ac628f3e459",
      "parents": [
        "3edbcdf01ebc6858087658d23c110c765a37c5e0",
        "0cff0b0956145a192865bef4896c771e164d0a3a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 08 09:26:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 09:26:41 2017 +0000"
      },
      "message": "Merge \"ART: additional info SIGILL\""
    },
    {
      "commit": "3edbcdf01ebc6858087658d23c110c765a37c5e0",
      "tree": "4a2fb9d9a666d26a0cebcb6ddf01ae7fcf08d2c1",
      "parents": [
        "e3f06d54904a8d1f076864e6d11a4f088054b276",
        "cf83aaa468fa1b87746ac2e8ca95e80aa8c29a81"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 08 05:18:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 05:18:33 2017 +0000"
      },
      "message": "Merge \"Revert \"mirror: Make Class::Status 64-bit field\"\""
    },
    {
      "commit": "cf83aaa468fa1b87746ac2e8ca95e80aa8c29a81",
      "tree": "2e74a2ac49fab21ce80f5b7e11a7c5e77097d735",
      "parents": [
        "de07216fe9824f68ba76bf4c14158ec4f55af2cb"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 08 03:21:54 2017 +0000"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 08 03:21:54 2017 +0000"
      },
      "message": "Revert \"mirror: Make Class::Status 64-bit field\"\n\nThis reverts commit de07216fe9824f68ba76bf4c14158ec4f55af2cb.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: Id86866a14ad7caf8e23181be19fc750cb3f46667\n"
    },
    {
      "commit": "e3f06d54904a8d1f076864e6d11a4f088054b276",
      "tree": "b2f9d4559d438b4ef896eaa02e395f517a4557c1",
      "parents": [
        "806e65e8798b51fa5262ceaeb44a8f256fe84b47",
        "de07216fe9824f68ba76bf4c14158ec4f55af2cb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 08 00:08:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 00:08:13 2017 +0000"
      },
      "message": "Merge \"mirror: Make Class::Status 64-bit field\""
    },
    {
      "commit": "de07216fe9824f68ba76bf4c14158ec4f55af2cb",
      "tree": "a26c44ab0a2c45b8bcb24976ef74d28ff867d919",
      "parents": [
        "82629c9182dffb823f05dec30f7ac72cf8fb3ba5"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 07 14:42:46 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 07 15:15:44 2017 -0700"
      },
      "message": "mirror: Make Class::Status 64-bit field\n\nTemporarily merge this CL, then revert.\n\nWe need it to submit Zhengkai\u0027s CL to go/lem because of the libcore\nchange.\n\nBug: 64692057\nTest: art/test.py -j32 --host\nChange-Id: If104832c66973e6ffe8baf81ad1b32237ee78a80\n"
    },
    {
      "commit": "d25c91583512fceebc7f865b27387025695aa11f",
      "tree": "fbd0818c72d91668e850ac843a2d1d85af09182a",
      "parents": [
        "e69463a2a0d0a5ea4cdb1ff4d74ba3ae0e41eb3d",
        "1e96a5d58d68909cbc2d6bf2ee08c6c11f7b858e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 07 21:25:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 21:25:29 2017 +0000"
      },
      "message": "Merge \"Fix context verification for relative dependencies\""
    }
  ],
  "next": "e69463a2a0d0a5ea4cdb1ff4d74ba3ae0e41eb3d"
}
