)]}'
{
  "log": [
    {
      "commit": "498d7c1752d02f6687c2b19a077ad1942d1d6348",
      "tree": "44880394c1f46c56796a9fab7be28e7e6e8109a2",
      "parents": [
        "cddf4286775e35ad26fa6a5244c4369031735589",
        "ec43a01e0ac948c59d5b1f9c3812f2901b48942a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:11:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 17 13:11:07 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\"\""
    },
    {
      "commit": "ec43a01e0ac948c59d5b1f9c3812f2901b48942a",
      "tree": "57e1a23dcc0beba8e98841b8cf063f6153b08c9b",
      "parents": [
        "3d477f3a3eea757a49ca621cc579f711f22fccdd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:10:40 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:10:40 2018 +0000"
      },
      "message": "Revert \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\"\n\nThis reverts commit 3d477f3a3eea757a49ca621cc579f711f22fccdd.\n\nBug: 115837065\n\nReason for revert: Breaks jdwp tests.\n\nChange-Id: I09249331798970751a20c6b41675c3efef72adfb\n"
    },
    {
      "commit": "0f643b0b1bf60c76725cdb14b5aef1ed08a76cf7",
      "tree": "6c1a335cb475ccc86d57fbc2b6dcb2e6848937e3",
      "parents": [
        "482487d46b1c0ce5be7ad64c373695b95b86286e",
        "3d477f3a3eea757a49ca621cc579f711f22fccdd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 16 22:17:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 22:17:02 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "90402ad6df38a5d4f268903aee5d7fe56791265f",
      "tree": "33978dfb96824b13376eb4553722c007870bc58a",
      "parents": [
        "94d927690abeda849567d24958001a8a33a41e7a",
        "4d57c69ab7753690738d9dc802b5b640cb6af491"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 16 19:49:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 19:49:36 2018 +0000"
      },
      "message": "Merge \"Revert \"ART: add GC time ratio metrics to GC performance\"\""
    },
    {
      "commit": "3d477f3a3eea757a49ca621cc579f711f22fccdd",
      "tree": "b4b402d0181610c62062c8c597ef30ee2840b6b1",
      "parents": [
        "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 16:40:45 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 10:13:38 2018 -0800"
      },
      "message": "Revert^2 \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit 8248490f24e8582ce2ead8cd878d8a2c38310a48.\n\nReason for revert: Fixed instrumentation.cc\n\nBug: 115837065\nTest: m test-art-host\nChange-Id: I484833f4712c835fcaf3452dca4cae5b031d5a7d\n"
    },
    {
      "commit": "4d57c69ab7753690738d9dc802b5b640cb6af491",
      "tree": "a26e2840a559a0214c532293166d3bd03a9dac0f",
      "parents": [
        "fe21070898e13cb5e6111d8749a97a679994eb5d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 16:32:40 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 16:32:40 2018 +0000"
      },
      "message": "Revert \"ART: add GC time ratio metrics to GC performance\"\n\nThis reverts commit fe21070898e13cb5e6111d8749a97a679994eb5d.\n\nReason for revert: Segfaults when CC is not enabled.\n\nBug: 112187497\nChange-Id: I9757097981a8120d893b0dbbd630ac4a87090a1d\nTest: TreeHugger\n"
    },
    {
      "commit": "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa",
      "tree": "57e1a23dcc0beba8e98841b8cf063f6153b08c9b",
      "parents": [
        "d94653399e2f9f06bbdf629f2affbf9a4fa73b8f",
        "2bb2fbd2879d0a6d9ebf7acff817079dde89b417"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 14:21:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 14:21:47 2018 +0000"
      },
      "message": "Merge changes Idc6e518c,Ia1cc0506\n\n* changes:\n  Create SdkVersion enum, migrate users to it\n  Runtime flags only for fast/slow hiddenapi path\n"
    },
    {
      "commit": "d94653399e2f9f06bbdf629f2affbf9a4fa73b8f",
      "tree": "738b85fd1f00a750fc912c9e8ba3d48178f23238",
      "parents": [
        "5f24607b47433da7862a8b51f7355008256ae037",
        "fe21070898e13cb5e6111d8749a97a679994eb5d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 16 13:40:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 13:40:42 2018 +0000"
      },
      "message": "Merge \"ART: add GC time ratio metrics to GC performance\""
    },
    {
      "commit": "5f24607b47433da7862a8b51f7355008256ae037",
      "tree": "c5e1bb93c0e7ed0c3b481ab135c60f83a64da671",
      "parents": [
        "bf86464506dce85a7b67ea1c4eb3e1f4f1d2085f",
        "b9f1af59681a73a33c86dd5919cc11874623d9d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 13:33:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 13:33:50 2018 +0000"
      },
      "message": "Merge \"Small cleanups in jit_code_cache.\""
    },
    {
      "commit": "bf86464506dce85a7b67ea1c4eb3e1f4f1d2085f",
      "tree": "92627875da9819cfafe2b6f69b2f74961da6b350",
      "parents": [
        "4c8cf12c4d7a55566054c24e3067672213502ee0",
        "2b6b3e5317c2159e97e56173fa559479f757980e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 13:04:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 13:04:52 2018 +0000"
      },
      "message": "Merge \"EnableDebugger: handle the case when hard RLIMIT_CORE is \u003cinf.\""
    },
    {
      "commit": "2bb2fbd2879d0a6d9ebf7acff817079dde89b417",
      "tree": "d607aa6bfb2ea55fbfd875237b37c79f3cfed5f6",
      "parents": [
        "85865697ff9fabede3d64ff64cde72727c3fc4c1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 13 18:24:26 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Create SdkVersion enum, migrate users to it\n\nCreates a new SdkVersion enum with integer codes of known\nAndroid SDK versions, together with helper functions for common\npredicates. Also converts target_sdk_version_ in Runtime to\nuint32_t and cleans up its uses.\n\nTest: m test-art\nChange-Id: Idc6e518c8675068bf952d0256686c88bb0eb833e\n"
    },
    {
      "commit": "85865697ff9fabede3d64ff64cde72727c3fc4c1",
      "tree": "0c67639c4c286149fa3f06f5f412683e39014790",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 17:26:20 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Runtime flags only for fast/slow hiddenapi path\n\nWith more flags being supported in the dex file, stop copying all of\nthem into ArtField/ArtMethod access flags. Instead, store the\ninformation needed to figure out whether to enter the slow path and\nretrieve full access flags from dex or not.\n\nAt the moment, the only runtime flag is kAccPublicApi assigned to all\nclass members on the whitelist.\n\nThe CL also moves hardcoded API membership of intrinsics out of\nArtMethod and into hidden_api.h, and moves ArtMethod::SetIntrinsic\ninto the .cc file.\n\nTest: m test-art\nChange-Id: Ia1cc05060dbc22341768161dfd8697c6158e803a\n"
    },
    {
      "commit": "b9f1af59681a73a33c86dd5919cc11874623d9d8",
      "tree": "d31e900f951201e406c524efd75318ebdbe4d649",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:30:29 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:30:29 2018 +0000"
      },
      "message": "Small cleanups in jit_code_cache.\n\nMake methods private, remove dead code.\n\nTest: test.py\nChange-Id: I4554d35c64115c6dd5308b6d509659e5c60346b1\n"
    },
    {
      "commit": "9296e18a6af90d88ff3b557031659216c0cd130e",
      "tree": "6c201062f3be6ec58dd6db21d4c21a81e8f977ae",
      "parents": [
        "671986e1bb82de1e5af97506d08ba343f3854711",
        "80a560c91a0c46215f4d554a58528fc24b00fc09"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 09:58:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 09:58:16 2018 +0000"
      },
      "message": "Merge \"Add native support for BaseDexClassLoader shared libraries.\""
    },
    {
      "commit": "c980df6125e53bbf8e5e7e8eecb3f9b0125bae5e",
      "tree": "966f80eb3959b94a5508525b0726e05f53ac7286",
      "parents": [
        "3d719ed950772e1ec70fe082863e907d5acd3fcf",
        "8248490f24e8582ce2ead8cd878d8a2c38310a48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 01:18:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 01:18:34 2018 +0000"
      },
      "message": "Merge \"Revert \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "8248490f24e8582ce2ead8cd878d8a2c38310a48",
      "tree": "f542af6560561526fc413e361e3323a615b5429c",
      "parents": [
        "36f8d22c672498753b9edc66ba11acc9816b2a17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 00:47:49 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 00:47:49 2018 +0000"
      },
      "message": "Revert \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit 36f8d22c672498753b9edc66ba11acc9816b2a17.\n\nReason for revert: Seems to be breaking test 687\n\nBug: 115837065\nChange-Id: I83bb1a9d76cc701c3d582778e5047ebd5dab5d29\nTest: TreeHugger\n"
    },
    {
      "commit": "e09485f761220ff16129d25b773ab968d3c2d76b",
      "tree": "87f93a1c3e2d2c7805859231c9cb7dd92a778bba",
      "parents": [
        "9e70fafa9ca3bf055fe1e9d8cba4ddb4ee090776",
        "36f8d22c672498753b9edc66ba11acc9816b2a17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 15 21:44:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 21:44:18 2018 +0000"
      },
      "message": "Merge \"ART: Add StackVisitor accepting a lambda\""
    },
    {
      "commit": "2b6b3e5317c2159e97e56173fa559479f757980e",
      "tree": "8addc71e8a406db574017764b6cc4ed71b39bd7d",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Nov 05 17:03:43 2018 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Nov 15 13:23:59 2018 -0800"
      },
      "message": "EnableDebugger: handle the case when hard RLIMIT_CORE is \u003cinf.\n\nASan and HWASan set rlim_cur \u003d rlim_max \u003d 0 for RLIMIT_CORE.\n\nBug: 112438058\nTest: SANITIZE_TARGET\u003dhwaddress, no RLIMIT_CORE warnings in logcat\n\nChange-Id: I8839705673c371b9b393eca36c7519a1ea73d7be\n"
    },
    {
      "commit": "bbf9b051af797130b37911beca75b9d763d8c092",
      "tree": "d267b65bbeb280ef2f13af02e7a00bbdbf982f84",
      "parents": [
        "e14294cc489aa5427c3eeede59ab90d0f2b466d6",
        "bc1e0fab934b7fb03545f08085b109d6508b17d0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 15 17:57:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 17:57:52 2018 +0000"
      },
      "message": "Merge \"Reduce class loader updating overhead.\""
    },
    {
      "commit": "bc1e0fab934b7fb03545f08085b109d6508b17d0",
      "tree": "87048ec7cccd78f9819ba16d95539a8deae51659",
      "parents": [
        "0bcbe9399dfc546db5c81b13979afc85da19d025"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 16:18:18 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 16:40:48 2018 -0800"
      },
      "message": "Reduce class loader updating overhead.\n\nAvoid unnecessary read barrier for comparing class loader agianst\nnull. Avoid transaction check.\n\nDeleted the helper class to simplify the code.\n\nThe time goes from ~3.8ms to ~2.9ms on Maps.\n\nTest: test-art-host\nBug: 116052292\n\nChange-Id: I4a966a9bb39400ba58d7cf3e0b2c8ab4747d65ed\n"
    },
    {
      "commit": "fe21070898e13cb5e6111d8749a97a679994eb5d",
      "tree": "37705205f769a95680a10df3d259bbdb211f6918",
      "parents": [
        "2b021c83498e523781ef3f413ebe34a3512900b3"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Nov 08 20:51:20 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Wed Nov 14 20:05:14 2018 +0000"
      },
      "message": "ART: add GC time ratio metrics to GC performance\n\nRecord CPU time for GC cycle and the whole process. Print the ratio if\nDumpGCPerformanceOnShutdown is set.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I4a7c3cd457662e57faff21f506a5bc4ba143ee25\n"
    },
    {
      "commit": "f50ac103426588d9f7c014ef2d2b9c766f8dc25e",
      "tree": "bac6537c3cd63cc382e24d9b94f0eb64f18ab0a4",
      "parents": [
        "b56e8353020acda1a8285daa11c69f57060cd015"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 17 18:00:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 14 16:49:40 2018 +0000"
      },
      "message": "Simplify hidden_api.h logic\n\nRefactor GetMemberAction to return a boolean whether access to a class\nmember should be denied. This also moves StrictMode consumer\nnotification into hidden_api.cc and removes notifications for toasts.\nTests are changed accordingly.\n\nTest: phone boots\nTest: m test-art\nMerged-In: I02902143de0ff91d402ba79c83f28226b1822a6f\nChange-Id: I02902143de0ff91d402ba79c83f28226b1822a6f\n(cherry picked from commit 51995f90adaa0e5047dee56d22f15e4225e70517)\n"
    },
    {
      "commit": "b56e8353020acda1a8285daa11c69f57060cd015",
      "tree": "cb570cb734aa7d51761985639c42b77f9b8f97d0",
      "parents": [
        "d0834e4a44440a8faf199024a030731ad26aae68",
        "12dd9aee74a588bf31f151cebba930849b4baceb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "message": "Merge \"Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\""
    },
    {
      "commit": "d0834e4a44440a8faf199024a030731ad26aae68",
      "tree": "0e9219249ed08f2f966f7a294b186ddf4d30d8cc",
      "parents": [
        "e99f73533df5e3b8c4b2afef753ee50ffb9ff050",
        "435516229e5f511d1ac4498da58372c8fece35b7"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 14 11:50:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 11:50:03 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\""
    },
    {
      "commit": "e99f73533df5e3b8c4b2afef753ee50ffb9ff050",
      "tree": "cbb3a6ee148bb2456b454bfbfffee5527842a266",
      "parents": [
        "b81c59ebb56db1fc454a59570426c40b6d619c5b",
        "790ff518ad4d08ed4fb105f5c011c0ec47e092cd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 10:24:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 10:24:59 2018 +0000"
      },
      "message": "Merge \"Add mterp checks after monitor entry/exit opcodes.\""
    },
    {
      "commit": "790ff518ad4d08ed4fb105f5c011c0ec47e092cd",
      "tree": "bf9def1c8a0567905bec3946ee67fe7410ca3715",
      "parents": [
        "4630f9a032575f75be317fe0d8dc054bbce5790a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 09 18:55:19 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 10:01:02 2018 +0000"
      },
      "message": "Add mterp checks after monitor entry/exit opcodes.\n\nCheck whether we are allowed to continue running in mterp.\n\nThis tries to enforce that we bail out of mterp after suspend point\nif needed (in particular, if debugger event switches interpreters).\n\nTest: ./art/test.py -b -r --interpreter\nChange-Id: If2d55e5ece22831ef864c181b7d6d5c70ca50e5d\n"
    },
    {
      "commit": "9e9fc708e32ace076b8fc9f809055662e1090762",
      "tree": "1811ae6bf398986bc5a14e8f9b0b50f0b92f6483",
      "parents": [
        "e5a56803936246a0c5d8ddbaeba59e009cec6f82",
        "d6f301911ad977365db969283b67466dd4a76424"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 14 00:22:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 00:22:20 2018 +0000"
      },
      "message": "Merge \"Remove kDex2OatHostKey from oat-header\""
    },
    {
      "commit": "e5a56803936246a0c5d8ddbaeba59e009cec6f82",
      "tree": "a367c07dbe9bb1eb844d02b4e868dab8e43788c9",
      "parents": [
        "d8b963fecd89b0624140fe78c8fd0604d24c8353",
        "c6bd42aa7e0ad6f394a55c4d972570b441574e85"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 13 22:27:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 22:27:51 2018 +0000"
      },
      "message": "Merge changes Iefe0f159,Ibe5bf113,Ic3d158d5\n\n* changes:\n  ART: Fix deopt manager JIT attempt\n  ART: Add Runtime::IsSafeMode\n  ART: Split Runtime::IsNativeDebuggable\n"
    },
    {
      "commit": "d8b963fecd89b0624140fe78c8fd0604d24c8353",
      "tree": "8d75dec45d2266401313de20836f23a195201867",
      "parents": [
        "57ee3473336912d89d7b9c2925dfbeab6eda3277",
        "9893c4773ce1da4dfb9f15140e93bf785abd89f7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 13 22:10:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 22:10:47 2018 +0000"
      },
      "message": "Merge \"Add missed null check in ClassLoaderContext::VerifyClassLoaderContextMatch.\""
    },
    {
      "commit": "83e2049b2ac8de0adac04a9a4229dbec7909df1e",
      "tree": "d34e9dd9d842eb929e57afee6c2a0d723778d336",
      "parents": [
        "d32ce09761ed5c6ecdd95396d0d668f04ccffd44"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 07 11:12:26 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 13 10:23:16 2018 -0800"
      },
      "message": "ART: Add Runtime::IsSafeMode\n\nEnsure that the safe mode can only be checked in non-zygote\nprocesses.\n\nBug: 119063276\nTest: m test-art-host\nTest: device boots\nChange-Id: Ibe5bf113c042dfb572c8a94ab17406cb8933ee62\n"
    },
    {
      "commit": "d32ce09761ed5c6ecdd95396d0d668f04ccffd44",
      "tree": "28c16c8ef6d6562af6e9cf33522bcd7ca6fada1d",
      "parents": [
        "57ee3473336912d89d7b9c2925dfbeab6eda3277"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 07 11:08:40 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 13 10:23:16 2018 -0800"
      },
      "message": "ART: Split Runtime::IsNativeDebuggable\n\nEnsure that the main version cannot be called in the zygote.\n\nBug: 119063276\nTest: m test-art-host\nTest: device boots\nChange-Id: Ic3d158d5d75fa6982411402f69062ac333b20798\n"
    },
    {
      "commit": "d6f301911ad977365db969283b67466dd4a76424",
      "tree": "00bfbfac77f6242f41c7951e35804296a0e90ec1",
      "parents": [
        "bad5c9a1f43148dc71f3b8e61cc201bc815fbac6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 12 16:49:31 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 13 10:21:23 2018 -0800"
      },
      "message": "Remove kDex2OatHostKey from oat-header\n\nThe oat-header used to include the ISA of the dex2oat used to compile\nthe image. This made cross-compiling a bitwise identical oat/image\nfile impossible and is not terribly useful so it was removed.\n\nTest: ./test.py --host\nBug: 119332327\nChange-Id: If9d21b5997907ee01283d1345749a01e2a2359ea\n"
    },
    {
      "commit": "9893c4773ce1da4dfb9f15140e93bf785abd89f7",
      "tree": "3b665e3d9064957f6cc5b8eb9cf7b0c5177c91bc",
      "parents": [
        "61f9bf1d48c43a4b65df5d0fe2d70c4ee87921f8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 13 15:39:53 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 13 15:39:53 2018 +0000"
      },
      "message": "Add missed null check in ClassLoaderContext::VerifyClassLoaderContextMatch.\n\nbug: 119441748\nTest: class_loader_context_test\nChange-Id: I68301a568eb321b42209584a3328e9a1b0fcc7ba\n"
    },
    {
      "commit": "435516229e5f511d1ac4498da58372c8fece35b7",
      "tree": "e510804ebf5b8f1786a7c377e1cef9fb5bb11d90",
      "parents": [
        "e5ed5bafc97e65e8d2b60ddaca48754a50ca5692"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Nov 09 15:14:54 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 13 15:15:37 2018 +0000"
      },
      "message": "Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9.\n\nReason for revert: This is the same as aosp/815019 except version_script is\nexcluded on Darwin. I think it should pass the mac targets, but haven\u0027t\ntested.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan (not on Darwin)\nTest: python frameworks/rs/build_rs.py (on Darwin, thanks Orion!)\nBug: 118374951\nChange-Id: I7a362381f6d891c6dc1304e5fcf6f8851aa67d7c\n"
    },
    {
      "commit": "57ee3473336912d89d7b9c2925dfbeab6eda3277",
      "tree": "6bc700e4894039514d444ff8f635a5bf3ef8c5c3",
      "parents": [
        "61f9bf1d48c43a4b65df5d0fe2d70c4ee87921f8",
        "dbcb48fc0d0841f327d108246487a4ef3df556ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 13 13:16:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 13:16:01 2018 +0000"
      },
      "message": "Merge \"Avoid unnecessary read barriers in mirror::Class.\""
    },
    {
      "commit": "61f9bf1d48c43a4b65df5d0fe2d70c4ee87921f8",
      "tree": "aac38c1eec083a7d2a242ad89d90d48353480355",
      "parents": [
        "01812cf9fa9a28d15f24b47a4b2893dd8e06e7a4",
        "104883b04617a850adf11f05e57c2fd29e09c83c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 13 11:46:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 11:46:21 2018 +0000"
      },
      "message": "Merge \"Clean up primitive array helpers in Object.\""
    },
    {
      "commit": "5cc0e75552b379e051168d832474f4d3989e9f74",
      "tree": "c06f4bdb02252442fe68c2e978106862a0f93a1c",
      "parents": [
        "a344b8c25a98471d99632a28530b03ed770f8e2e"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Fri Nov 09 12:30:46 2018 -0800"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Mon Nov 12 17:32:59 2018 +0000"
      },
      "message": "Emit JVMTI events for LockSupport.park\n\nThis restores the behavior from when park was implemented with\nwait/notify, except that the blocker object is used as the monitor\nrather than the Thread that is parking.\n\nBug: 28845097\nTested: ./test/run-test --jvm 1931\n\nChange-Id: I523d719ca3e49a538c06f48f032b322fb91e147e\n"
    },
    {
      "commit": "dbcb48fc0d0841f327d108246487a4ef3df556ed",
      "tree": "3abcfa87be3178d040739c465ce54f90dda96aa6",
      "parents": [
        "104883b04617a850adf11f05e57c2fd29e09c83c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 11:47:04 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 16:35:06 2018 +0000"
      },
      "message": "Avoid unnecessary read barriers in mirror::Class.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Id98ebedf185bfc7f31eda506604c072f68b7a084\n"
    },
    {
      "commit": "104883b04617a850adf11f05e57c2fd29e09c83c",
      "tree": "51d436588505a3ead506d633bdf97c9b4c934ae0",
      "parents": [
        "00e96d054e2b656d4d0f99fc141d1701af4dba23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 09 17:12:23 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 15:26:21 2018 +0000"
      },
      "message": "Clean up primitive array helpers in Object.\n\nRefactor these helpers and avoid read barriers. Remove\nClass::Is{Int,Long}ArrayClass() and use the Object helpers\ninstead.\n\nRemove the AsByteSizedArray() and AsShortSizedArray()\nhelpers that essentially break the type system and rewrite\ntheir users, adding appropriate notes. {Float,Double}Array\nuses in Unsafe would have previously failed a DCHECK().\n\nTest: Additional test in 004-UnsafeTest.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I88b7e3df7de883f64cfc5eb437a40646f2884685\n"
    },
    {
      "commit": "4630f9a032575f75be317fe0d8dc054bbce5790a",
      "tree": "8707efe278793db2825ae021cd8d7dd466e4d2d4",
      "parents": [
        "bad5c9a1f43148dc71f3b8e61cc201bc815fbac6",
        "c665d6368e85a5eb8055a58c535b41777c97d7c7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 09 21:42:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 09 21:42:39 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Notify waiters when releasing the monitor\"\""
    },
    {
      "commit": "bad5c9a1f43148dc71f3b8e61cc201bc815fbac6",
      "tree": "755c3378d35c4f5fe96423ec58a8a48e4b5d1b4b",
      "parents": [
        "00e96d054e2b656d4d0f99fc141d1701af4dba23",
        "e260e5438ff0dc4a4a3547c434e2364ad039f43a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 09 15:57:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 09 15:57:44 2018 +0000"
      },
      "message": "Merge \"ART: add GC live ratio metrics to GC performance\""
    },
    {
      "commit": "c665d6368e85a5eb8055a58c535b41777c97d7c7",
      "tree": "712cc488031bbf89767676d3a651df1a94ada611",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Tue Nov 06 16:20:13 2018 +0000"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Fri Nov 09 07:52:11 2018 -0800"
      },
      "message": "Revert^2 \"Notify waiters when releasing the monitor\"\n\nThis reverts commit 9cec9658ec0b7a6c715a154ec834faba853188e3.\n\nReason for revert: Changed lock ordering to not require reacquiring the\nmonitor lock while holding the wait lock.\n\nTested: 1000 iterations of ThreadStress\nBug: 117842465\nChange-Id: I7b54943052c5eba367eac86da9646bfc81bc1163\n"
    },
    {
      "commit": "e260e5438ff0dc4a4a3547c434e2364ad039f43a",
      "tree": "3d1d5fbacacc1549f66dfca6796bd79ed63460de",
      "parents": [
        "9c4bb4578df6449e61c1c46ea4eee36f463b0414"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 05 13:45:59 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 09 13:11:28 2018 +0000"
      },
      "message": "ART: add GC live ratio metrics to GC performance\n\nRecord average GC live ratio (copied bytes over allocated bytes in\nform-space), and GC count for both minor and major ConcurrentCopy GC,\nand print both if DumpGCPerformanceOnShutdown is set.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I587f92d847b899c81bf7a6d7303f7b54527c6f33\n"
    },
    {
      "commit": "5f250014f4cc348a573798c4daa191ea1381078d",
      "tree": "ea7937619632fa1fa341563a5b8c443bcf77fd2f",
      "parents": [
        "fdf6401e1594e71a1e86d455d55333b939160bd9"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 14:16:38 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 09 11:42:17 2018 +0000"
      },
      "message": "Make exception handling code in switch interpreter NO_INLINE.\n\nExceptions should be rare so the code can be shared.\nThe compiler needs a bit of help with optimization.\n\nIt saves 81k(arm32) and 150k(arm64) from libart.so.\n\nPerformance difference is within noise (golem using the switch).\n\nTest: \"./art/test.py -b -r --interpreter --host\" with switch interpreter.\nChange-Id: I08a5690ceaf6b3cae8c2a486ab809e5604b88e0a\n"
    },
    {
      "commit": "8ed45c876077771455d63dd7e315b439230812f8",
      "tree": "239cc6db092fa00908af0be433b80baff16b172e",
      "parents": [
        "a5de05da46e8a93436e68e7e0d242dce46269527"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 15:08:57 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 17:09:16 2018 +0000"
      },
      "message": "Add test configuration for the switch interpreter.\n\nBug: 31358597\nTest: ./art/test/testrunner/run_build_test_target.py art-interpreter-cxx\nChange-Id: Iebb7a3a5168a27654984f3749a7b86542422671b\n"
    },
    {
      "commit": "a4a96afd95e0819f4f35ece733e9a0731355d0d2",
      "tree": "60abbacda9fcbbdb56392e540aa5c683000812ff",
      "parents": [
        "d4c1c08773414451dda32a4228253c0f443313a2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 31 16:34:58 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 12:25:15 2018 +0000"
      },
      "message": "Share the preamble in switch interpreter.\n\nMove the preamble code to the main loop to avoid replicating it.\n\nThis halves per-file compile time to 0.5 min.\n\nIt saves 225k(arm32) and 348k(arm64) from libart.so.\n\nPerformance difference is within noise (golem using the switch).\n\nTest: \"test.py -b -r --interpreter --host\" with switch interpreter.\nChange-Id: I2615b3568eb79560d2d342ac3dd28f6269ee5e74\n"
    },
    {
      "commit": "d4c1c08773414451dda32a4228253c0f443313a2",
      "tree": "45fb374b124b9dc6efb8492d6cbac4d2f179f4d1",
      "parents": [
        "1ecd7a848ea0363a0036fad1b7e0771f57eea922",
        "47ad3763e0f0e74c6469e899af883a6c4d09d7bf"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 12:03:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 12:03:46 2018 +0000"
      },
      "message": "Merge \"Replace switch interpreter macros with C++ functions.\""
    },
    {
      "commit": "9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9",
      "tree": "46602632efd61e7d1330f52e4ec0c7404ae9bad0",
      "parents": [
        "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc"
      ],
      "author": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "committer": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "message": "Revert \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 21579bec04bea8a9a6ca65ad5493016d1fcb9dcc.\n\nReason for revert: Build failure\n\nChange-Id: Ia941425b9462f478be78058b3d63a30106421de6\n"
    },
    {
      "commit": "47ad3763e0f0e74c6469e899af883a6c4d09d7bf",
      "tree": "d6e67f431a21ee8fbdfe6d2283e1e04587a8aeca",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 31 12:43:40 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 10:30:21 2018 +0000"
      },
      "message": "Replace switch interpreter macros with C++ functions.\n\nC++ code is more maintainable than huge macros.\n\nThe \"return\" statement was used within the macros to skip the rest\nof the interpreted opcode.  This is slightly more tricky in functions.\nAll such use cases have been replaced with \"return false\", and the\ncalling functions always check the return value and propagate it up.\n\nPerformance difference is within noise (golem using the switch).\n\nThis halves per-file compile time to 1min.\n\nTest: \"test.py -b -r --interpreter --host\" with switch interpreter.\nChange-Id: I01d861dec1c4a7e95e412fd4b662e5a4d7bd55a8\n"
    },
    {
      "commit": "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc",
      "tree": "b33204570077025d4af6d2cb82dc8fa84e67b0b9",
      "parents": [
        "bf983214f7488a7923788356d1a441f518073b23"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 06 13:56:50 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 07 20:44:24 2018 +0000"
      },
      "message": "Link lzma and lz4 compression libs statically into libartbase and use that\ninstead.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 240K (219%) on 64 bit, but only these targets pack on\nextra bloat: dexanalyze, dexdump2, dexlayout(d), dexlist.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan\nBug: 118374951\nChange-Id: I16d67d99897ec0a35e1467ab561bb82ee2449983\n"
    },
    {
      "commit": "bf983214f7488a7923788356d1a441f518073b23",
      "tree": "46602632efd61e7d1330f52e4ec0c7404ae9bad0",
      "parents": [
        "24a993de16018304393cbe527c92658d81ad9f7a",
        "15a678af331af103ed59e0d9f01d690e35eb9f09"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 07 17:12:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 17:12:34 2018 +0000"
      },
      "message": "Merge \"ART: Fix internal addr2line\""
    },
    {
      "commit": "24a993de16018304393cbe527c92658d81ad9f7a",
      "tree": "9245433e3a9d92082e157afbf4779e2bf6a5473a",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8",
        "56581d89cb21ba384dad7ef19246ec6671e1ed39"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 15:13:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 15:13:12 2018 +0000"
      },
      "message": "Merge \"Clean up oat key-value store.\""
    },
    {
      "commit": "56581d89cb21ba384dad7ef19246ec6671e1ed39",
      "tree": "b88ce8bd8623b331972ae7a9c128c02855dc43a5",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 12:30:52 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 13:45:01 2018 +0000"
      },
      "message": "Clean up oat key-value store.\n\nRemove the \"image-location\" key because it is unused. Do not\nstore the \"dex2oat-host\" value (i.e. dex2oat runtime ISA) if\n--avoid-storing-invocation is specified.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ib0760f923443322f1a72d338abad2db3617036dc\n"
    },
    {
      "commit": "fe59955fc41e277bf1c60378202ba785abb1e4a8",
      "tree": "cb756f7d17bd6942e59f1d84b37b626d26b790c9",
      "parents": [
        "c2cab4b11b95147dd9dadb3378e10a891ee64ad6",
        "a7edd0d02f3aa2e6df31d6bd1de78e48797e8fc2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 07 11:07:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 11:07:20 2018 +0000"
      },
      "message": "Merge \"Fix JIT creation so it picks up runtime flags.\""
    },
    {
      "commit": "c2cab4b11b95147dd9dadb3378e10a891ee64ad6",
      "tree": "8595e62d3aa3dad700c3deec7765afacc6a9b963",
      "parents": [
        "b70c999fcc3ff4d4988e0214f4d18783ff35edf7",
        "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "message": "Merge \"Refactor ClassLinker::FindPrimitiveClass().\""
    },
    {
      "commit": "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96",
      "tree": "e230bdce1f86d411c50ded9efc588590e98df261",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 14:55:54 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:06:43 2018 +0000"
      },
      "message": "Refactor ClassLinker::FindPrimitiveClass().\n\nIntroduce ClassLinker::LookupPrimitiveClass() that never\nthrows an exception and use it to clean up callers that\nare not supposed to cause thread suspension.\n\nTest: m test-art-host-gtest\nBug: 118909457\nChange-Id: Ibfee8b7991c4a0d1fa636c85f14437c9865d1658\n"
    },
    {
      "commit": "b70c999fcc3ff4d4988e0214f4d18783ff35edf7",
      "tree": "48354e4e2375ce066f59e20fa4c5b92760a9b92d",
      "parents": [
        "2e8d6550a74e43f027f90828af8b104ddb2f0724",
        "6da8247ebe2e063cc14a5e943fa8b3416edf936a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 07 09:18:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 09:18:23 2018 +0000"
      },
      "message": "Merge \"Split interpreter_switch_impl into smaller functions.\""
    },
    {
      "commit": "a7edd0d02f3aa2e6df31d6bd1de78e48797e8fc2",
      "tree": "988a26723769395801d40d266192994eed369b22",
      "parents": [
        "c925fe6afb9d7c100b5f7c889a98c147c66e1742"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 07 03:18:16 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 07 05:54:40 2018 +0000"
      },
      "message": "Fix JIT creation so it picks up runtime flags.\n\nbug: 119063276\nTest: benchmarks, take a bugreport, check that JIT is enabled.\nTest: atest ZenModeFilteringTest with libartd and JIT at first use.\nChange-Id: Id9f0be316467064dc21edfb0a0493149678630e0\n"
    },
    {
      "commit": "15a678af331af103ed59e0d9f01d690e35eb9f09",
      "tree": "448df6221355bbbbee760bc0d98743bf0b5455be",
      "parents": [
        "c925fe6afb9d7c100b5f7c889a98c147c66e1742"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 06 17:14:10 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 06 17:14:10 2018 -0800"
      },
      "message": "ART: Fix internal addr2line\n\nTest: m test-art-host\nChange-Id: I555a196577eeef995746b6292a4728c4814f0875\n"
    },
    {
      "commit": "456b492978389d9b5384d1a730bdff55602790fd",
      "tree": "15e4c5e67f129ef7d9e00651565b22dfd41b3eb9",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 10:35:48 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 10:38:04 2018 -0800"
      },
      "message": "Add timing split for updating app image class loaders\n\nAdded since this a non-trivial portion of app image loading time.\n\nTest: test-art-host\nBug: 111397239\nBug: 116052292\nChange-Id: I922077a8929a46efaa7f5567beffee6d7b634392\n"
    },
    {
      "commit": "6da8247ebe2e063cc14a5e943fa8b3416edf936a",
      "tree": "2765ad9af2e9aa4132ca66218ee927b35943ec95",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 23 14:03:08 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 06 16:22:06 2018 +0000"
      },
      "message": "Split interpreter_switch_impl into smaller functions.\n\nSplit the uber switch statement into smaller functions.\nThose functions are still always inlined in the switch,\nso it makes little difference for the time being.\n\nHowever the separation should allow us to:\n - Remove the excessive use of macros in the interpreter.\n - Add helpers to handle similar opcodes.\n - Simplify the individual opcode handlers.\n - Simplify interactions with mterp.\n - Easily experiment (e.g. switch vs goto dispatch).\n\nPerformance difference is within noise (golem using the switch).\n\nTest: \"test.py -r --interpreter --host\" with switch interpreter.\nChange-Id: I6075b354e0439bf89061f492dd9b9cbe743145cb\n"
    },
    {
      "commit": "12dd9aee74a588bf31f151cebba930849b4baceb",
      "tree": "9d04404a17b4f3e5e9e2b1150fc575a74ecd37c2",
      "parents": [
        "5725e7c4aab576384649de60557dc1f52eb21b9f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 13:32:06 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 14:31:16 2018 +0000"
      },
      "message": "Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\n\nUsing a unified libvixl(s) saves space by sharing code that was common\nto libvixl(d)-arm and libvixl(d)-arm64 and also addresses multiple\ndefinitions issues that would cause ODR violations.\n\nTest: 32-bit-only device boot test\nTest: 32/64-bit device boot test\nChange-Id: I1d67c43897e08bc0f5743eb038fe574ce2fb54f3\n"
    },
    {
      "commit": "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788",
      "tree": "96f5a6db67ca9b4362b014e427523019b9f5e69f",
      "parents": [
        "6b2b372eae74cc79e8aa6f37c562dcdfc4a92a6e",
        "9cec9658ec0b7a6c715a154ec834faba853188e3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 12:59:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 12:59:06 2018 +0000"
      },
      "message": "Merge \"Revert \"Notify waiters when releasing the monitor\"\""
    },
    {
      "commit": "9cec9658ec0b7a6c715a154ec834faba853188e3",
      "tree": "84d926444e66b5c5f91a7ee68fa65d5efe3ba8c0",
      "parents": [
        "1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 10:50:20 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 10:50:20 2018 +0000"
      },
      "message": "Revert \"Notify waiters when releasing the monitor\"\n\nThis reverts commit 1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358.\n\nReason for revert: Break ART run-test ThreadStress by failing this\nassertion:\n\n  dalvikvm32 E 11-06 09:43:27 27100 27851 mutex-inl.h:134] Lock level violation: holding \"a thread wait mutex\" (level ThreadWaitLock - 9) while locking \"a monitor lock\" (level MonitorLock - 54)\n  dalvikvm32 F 11-06 09:43:27 27100 27851 mutex-inl.h:145] Check failed: !bad_mutexes_held\n\nBug: 117842465\nChange-Id: I888201bf5c252c8366618d9169a37e4a4cc29734\n"
    },
    {
      "commit": "6b2b372eae74cc79e8aa6f37c562dcdfc4a92a6e",
      "tree": "96be7a233f0d332579022f8d34ce454228e9586d",
      "parents": [
        "adcbf7fd3f15721991523a48c95d337e56f2254b",
        "cb58b07d233c5f8e910e6e5946da8ac4ec3099f5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 10:34:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 10:34:20 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.udate(int,int) intrinsic for ARM64\""
    },
    {
      "commit": "adcbf7fd3f15721991523a48c95d337e56f2254b",
      "tree": "0961c8d3561f8cd5a61262d868faecba2e4309b4",
      "parents": [
        "0d95e6a1047e99050d3da740202add5e7bb30543",
        "0e15559d15570eb6283e298d67c82438f8fd2723"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 09:01:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 09:01:21 2018 +0000"
      },
      "message": "Merge \"Print the address of the sentinel object for debugging purposes.\""
    },
    {
      "commit": "0d95e6a1047e99050d3da740202add5e7bb30543",
      "tree": "8f7f99fb524ed78b8827cd5a278bcda028e17f33",
      "parents": [
        "d37979d919032f38a45ce19892c3b77d7eca3b25",
        "1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 06 06:04:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 06:04:41 2018 +0000"
      },
      "message": "Merge \"Notify waiters when releasing the monitor\""
    },
    {
      "commit": "6941f484fe4cc5db7c0c6e03e02dad0addf76c73",
      "tree": "03ebe94e5ef4d4c6524598148d7867bd34b23025",
      "parents": [
        "7995cf6c3c9560d4427acd2935bd4d1cc5789d2e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 05 16:46:08 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 05 16:47:31 2018 -0800"
      },
      "message": "ART: Fix JIT initialization\n\nEnsure the JIT code cache is created before the JIT for\nnon-system-server processes.\n\nBug: 118833033\nBug: 119049908\nTest: m test-art-host\nChange-Id: I99d04d0d1ad335cffe0e68dc74c5bf40de5e1d35\n"
    },
    {
      "commit": "aa31f4944936cabb8cc307890de9fa54ceda6de8",
      "tree": "7485bb1d985244ca54cba25f56585f0ac4e30039",
      "parents": [
        "ae5d77d323c8456343e30571c0f67e40b15c7af1"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Nov 01 18:57:38 2018 +0000"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Mon Nov 05 11:01:51 2018 -0800"
      },
      "message": "Revert^4 \"Implement LockSupport.park with a futex\"\n\nThis reverts commit 13f4d9631db981ae5008073db4df9c6a934fc9f3.\n\nReason for revert: Fixing ThreadStress timeouts.\n\nChange-Id: I9f8c3f56eccfadc3751049731e8d427873cc7841\n"
    },
    {
      "commit": "0e15559d15570eb6283e298d67c82438f8fd2723",
      "tree": "d95cb899bb49b067cbdcf37b7ca34a87b7e25838",
      "parents": [
        "97d40f9c7b1157783d09861ce76d3a0b3da73cbe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 05 18:31:49 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 05 18:37:26 2018 +0000"
      },
      "message": "Print the address of the sentinel object for debugging purposes.\n\nThis object is always allocated in the non-moving space, and could be\nthe one triggering a failing assertion in\nart::gc::collector::ConcurrentCopying::ProcessMarkStackRef. Print it\nas part of the information dumped when this assertions fails.\n\nNote: This is a temporary change that should be reverted after the\ncorresponding bug is closed.\n\nTest: art/test.py\nBug: 116087961\nChange-Id: I678989b4ad921fefbacbfc42218e18f7302cb174\n"
    },
    {
      "commit": "a5175541c197e7bf9b03651ea5da4e64a2ac2d27",
      "tree": "8d50a76d15f4f0d366283f43041c1661770e9540",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1",
        "d79b37b054cc7de5be093790408208a07bb799ec"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 05 09:40:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 05 09:40:59 2018 +0000"
      },
      "message": "Merge \"ART: Throw on soft verify failure in InitializeClass().\""
    },
    {
      "commit": "1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358",
      "tree": "dbc70ca80226ea0abb7a404a122b81400b90f52d",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Oct 25 15:37:14 2018 -0700"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Fri Nov 02 18:06:46 2018 -0700"
      },
      "message": "Notify waiters when releasing the monitor\n\nThis avoids a ping-pong thread scheduling issue, where a waiter\nimmediately tries to acquire the monitor held by the notifier.\n\nBug: 117842465\n\nChange-Id: I33b91b066c9412b031fd6432bcb61273fb8d8fea\n"
    },
    {
      "commit": "36f8d22c672498753b9edc66ba11acc9816b2a17",
      "tree": "7a7195bf16db14d7f56f94a4d6421f6837b2f686",
      "parents": [
        "a53da8f8170ddaff3e4160641938ba1b7806202c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 08 08:13:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 02 16:01:30 2018 -0700"
      },
      "message": "ART: Add StackVisitor accepting a lambda\n\nTo simplify implementation of visitors. Rewrite some\nvisitors.\n\nBug: 115837065\nTest: mmma art\nTest: m test-art-host\nChange-Id: I04172d7626b702c1d69c63eba65526378935a25d\n"
    },
    {
      "commit": "23d3ed8c124f239d26a583f9d096b22f7f6677d1",
      "tree": "84d926444e66b5c5f91a7ee68fa65d5efe3ba8c0",
      "parents": [
        "cd5d1079692f42eed932950241f3508f93337753",
        "8fc755804bc3eb7b55e4de0ac3b335efd5ca0309"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 02 19:57:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 19:57:08 2018 +0000"
      },
      "message": "Merge \"Smarter set intersection between app image and non boot image strings\""
    },
    {
      "commit": "8fc755804bc3eb7b55e4de0ac3b335efd5ca0309",
      "tree": "440b4c164ba6a506ed44e8ae31f5bb028dec2c88",
      "parents": [
        "81ac31ded4df5d597aa603c53122fa1d74413b78"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 01 14:21:33 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 02 10:02:18 2018 -0700"
      },
      "message": "Smarter set intersection between app image and non boot image strings\n\nIf there are fewer non boot image strings in the runtime, iterate\nover those strings instead of the set being newly added.\n\nOn AOSP, nonBootImageInternStrings is around 500.\n\nTest: test-art-host\nBug: 116059983\nChange-Id: I76b49f2090971cf593ba487889b35dfc1fa8cf13\n"
    },
    {
      "commit": "a53da8f8170ddaff3e4160641938ba1b7806202c",
      "tree": "f542af6560561526fc413e361e3323a615b5429c",
      "parents": [
        "81ac31ded4df5d597aa603c53122fa1d74413b78",
        "c1c3452e465e473df499196b387330a793b89680"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 02 15:08:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 15:08:09 2018 +0000"
      },
      "message": "Merge \"Do not cache RequiresConstructorBarrier() results.\""
    },
    {
      "commit": "d79b37b054cc7de5be093790408208a07bb799ec",
      "tree": "16ea9f25662be0670d4f02f5a03d42e56fc0ce33",
      "parents": [
        "fd35c6862a2417d4765f65a4b81459c09a2f70ae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 02 13:06:22 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 02 13:34:49 2018 +0000"
      },
      "message": "ART: Throw on soft verify failure in InitializeClass().\n\nAvoid a CHECK() failure in ClassLinker::EnsureInitialized()\nwhen the transactional interpreter tries to initialize a\nclass with soft verification failures.\n\n(When desired, compilation can be forced to fail for such\nfailures with the --abort-on-soft-verifier-error option.)\n\nTest: Added a regression test to image_test.\nTest: m test-art-host-gtest\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nChange-Id: Ibb8cf6ade81b5a2944c7e484251a67aba1f1fbeb\n"
    },
    {
      "commit": "fd35c6862a2417d4765f65a4b81459c09a2f70ae",
      "tree": "ba1484f98500ad7e32ece8182394977e62d47cca",
      "parents": [
        "d77b67ae68ff0b0d6b1b6200da6842168c9f667b",
        "06af3b42e585531d3191c27ba6be1b9e768860a2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 02 10:27:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 10:27:59 2018 +0000"
      },
      "message": "Merge \"Add support for shared libaries in class loader context.\""
    },
    {
      "commit": "d77b67ae68ff0b0d6b1b6200da6842168c9f667b",
      "tree": "da0409dda75ec9374cb4987a1ed96d85c019d213",
      "parents": [
        "db7279080105974ef6cac4648e84f93bb23c367e",
        "f6cfd003cf87de0b3f2420893af93230d9ed1f38"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 02 10:21:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 10:21:46 2018 +0000"
      },
      "message": "Merge \"ART: Clean up android_dlopen_ext() call.\""
    },
    {
      "commit": "63a2365ee9920208b6e53347cccb085295a6471a",
      "tree": "52bc2f5043c7c8cccb7cc8cfdf5c6bf50f7b5189",
      "parents": [
        "ca3c63a9ed2257718dc67248696965cf1835512d",
        "7f226244e8adbda8019024bcf010ef3f0a8a3b0c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 02 10:17:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 10:17:28 2018 +0000"
      },
      "message": "Merge \"Remove VMRuntime.hasUsedHiddenApi()\""
    },
    {
      "commit": "cb58b07d233c5f8e910e6e5946da8ac4ec3099f5",
      "tree": "bd19cb9a44555adf51e2d145c322a592c6cd3527",
      "parents": [
        "e2acc339ede3c620a476827880cf68d044dcd53e"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Fri Oct 13 12:06:56 2017 +0100"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Fri Nov 02 10:07:12 2018 +0000"
      },
      "message": "ART: Add CRC32.udate(int,int) intrinsic for ARM64\n\nUse crc32 instructions for java.util.zip.CRC32.update(int,int).\n\nNote that CRC32 is an optional feature on ARMv8, this intrinsic\nis only enabled for devices with CRC32 intruction support.\n\nOriginal author: tim.zhang@linaro.org\n\nPerformance improvements in CRC32Bench.UpdateInt:\nPixel 2: 22.8x\nNexus 6P:\n  little core: 28.3x\n  big core   : 21.6x\n\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing --jit --interpreter\nTest: 580-crc32\n\nChange-Id: I1a9bc2befd2934b04103a27ce05806e919874070\n"
    },
    {
      "commit": "ca3c63a9ed2257718dc67248696965cf1835512d",
      "tree": "3adf6cb819d4b433b2aabdfd8efb77dfdf3638a9",
      "parents": [
        "e2acc339ede3c620a476827880cf68d044dcd53e",
        "39d8c873645df7c956bf306693d95212d1d51906"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 02 09:54:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 09:54:12 2018 +0000"
      },
      "message": "Merge \"Optimize string comparisons in Class::FindClassMethod.\""
    },
    {
      "commit": "8cc418e1101477ae17e7d267a3ba9c05f863558a",
      "tree": "1348e56a61ea2a7d7a47c007fa5492ec3736f675",
      "parents": [
        "1e152a6090c546f4a6184a5610c85cae7ac77068"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 31 10:54:30 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 01 13:42:43 2018 -0700"
      },
      "message": "Track what intern tables are from boot images\n\nGoal: Use this to make it faster to do collision checks between app\nimage intern tables against the non boot image intern tables.\n\nBug: 116059983\nTest: test-art-host\n\nChange-Id: I7a2305167335da5b6685822894f7985970e99053\n"
    },
    {
      "commit": "39d8c873645df7c956bf306693d95212d1d51906",
      "tree": "84bdfb98c931343b507c19a8149c84ba48a0c7b1",
      "parents": [
        "1e152a6090c546f4a6184a5610c85cae7ac77068"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 01 16:44:20 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 01 19:28:17 2018 +0000"
      },
      "message": "Optimize string comparisons in Class::FindClassMethod.\n\nThe method is relatively hot in non-quickend code.\n\nAvoid full string comparisons by comparing the unicode lengths first.\n\nTest: ./art/test.py -b -r --interpreter --host --64\nChange-Id: Ib0aa7008ca36e3916967fe082948d16823b93e02\n"
    },
    {
      "commit": "7f226244e8adbda8019024bcf010ef3f0a8a3b0c",
      "tree": "a79f4d38979f0885d31bb0b7a201f02b8d11dc0e",
      "parents": [
        "0708fc0c096fb4126c2029d0172830cf0c8e159b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 01 18:36:46 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 01 18:38:13 2018 +0000"
      },
      "message": "Remove VMRuntime.hasUsedHiddenApi()\n\nNot needed with removal of the UI toast.\n\nTest: m, phone boots\nChange-Id: I8a99b264b66d8e9f2096b5531ad4294012a7b010\n"
    },
    {
      "commit": "f6cfd003cf87de0b3f2420893af93230d9ed1f38",
      "tree": "9f5c1a3325a4b144e25a87102c30426ee217d6e2",
      "parents": [
        "1e152a6090c546f4a6184a5610c85cae7ac77068"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 01 16:53:31 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 01 18:27:38 2018 +0000"
      },
      "message": "ART: Clean up android_dlopen_ext() call.\n\nRemove the unnecessary ANDROID_DLEXT_FORCE_FIXED_VADDR flag.\nWe do not produce oat files with non-zero minimum `p_vaddr`.\n\nTest: Pixel 2 XL boots.\nTest: m test-art-host-gtest\nChange-Id: I892eb10798f3c72544d100a5968f08309b980b60\n"
    },
    {
      "commit": "80a560c91a0c46215f4d554a58528fc24b00fc09",
      "tree": "09e9fc7b978a0fdadafebd3ac2f67ab91832b18c",
      "parents": [
        "a48eb7e0690187618d2824a7d9b5601e7f5cdf80"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 26 13:48:51 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 17:53:27 2018 +0000"
      },
      "message": "Add native support for BaseDexClassLoader shared libraries.\n\nbug: 112405321\nTest: 688-shared-library\nChange-Id: Ia993b3ded71d4491a59fb78b0282eacdb66634bd\n"
    },
    {
      "commit": "c1c3452e465e473df499196b387330a793b89680",
      "tree": "1b144182126bfc73c5d82d1941e1673826d39343",
      "parents": [
        "3b5062083d3e203d1c72b066150b4fe441588a25"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 31 13:56:49 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 01 17:01:31 2018 +0000"
      },
      "message": "Do not cache RequiresConstructorBarrier() results.\n\nAvoid caching the results. Caching was broken for JIT in the\npresence of class unloading; entries for unloaded dex files\nwere leaked and potentially used erroneously with a newly\nloaded dex file.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target\nBug: 118808764\nChange-Id: Ic1163601170364e060c2e3009752f543c9bb37b7\n"
    },
    {
      "commit": "06af3b42e585531d3191c27ba6be1b9e768860a2",
      "tree": "a34a57eedd94b5bd0cdaa388211a272f6553254d",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 29 10:39:04 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 15:06:29 2018 +0000"
      },
      "message": "Add support for shared libaries in class loader context.\n\nFor example:\nPCL[a.dex:b.dex]{PCL[s1.dex]#PCL[s2.dex:s3.dex]};DLC[c.dex:d.dex]{DLC[s4.dex]}\n\nRewrite the class_loader_chain_ to be a chain instead of a vector,\nto simplify processing and encoding of contexts.\n\nbug: 111174995\nTest: class_loader_context_test, test.py\nChange-Id: I7c9f71b67a91b43ae534721b43dc4fdb8e0b6ec4\n"
    },
    {
      "commit": "1e152a6090c546f4a6184a5610c85cae7ac77068",
      "tree": "04fef9b17fe4b958c5c9747aabeee20bb4e569ec",
      "parents": [
        "d69c49a79d7e4d2973f1071c01c00e51abb0452a",
        "13f4d9631db981ae5008073db4df9c6a934fc9f3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 15:03:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 01 15:03:35 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert^2 \"Implement LockSupport.park with a futex\"\"\""
    },
    {
      "commit": "d69c49a79d7e4d2973f1071c01c00e51abb0452a",
      "tree": "b1a6a4316d1130a90c5a2aaaf2e76a7fb9c3d03c",
      "parents": [
        "0708fc0c096fb4126c2029d0172830cf0c8e159b",
        "41c080891ca9d8834c9b50c3ac18dd01c20de9e9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 01 14:29:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 01 14:29:02 2018 +0000"
      },
      "message": "Merge \"Hold intern table lock for AddImageStringsToTable\""
    },
    {
      "commit": "13f4d9631db981ae5008073db4df9c6a934fc9f3",
      "tree": "928c363c96854ac8db404a0ddd11adf8c66ea1c0",
      "parents": [
        "4e7077d795ab94d40c76ae7b9245fd5dcbb7716c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 11:34:29 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 11:34:29 2018 +0000"
      },
      "message": "Revert \"Revert^2 \"Implement LockSupport.park with a futex\"\"\n\nThis reverts commit 4e7077d795ab94d40c76ae7b9245fd5dcbb7716c.\n\nBug: 28845097\n\nReason for revert: ThreadStress flakes.\n\nChange-Id: Ibe29c2f679a642ccffea51c2fcf7dfaaed2dc305\n"
    },
    {
      "commit": "0708fc0c096fb4126c2029d0172830cf0c8e159b",
      "tree": "27f71278d9dcd4260881e83d05f2893349d42769",
      "parents": [
        "0b59b54687965f74212198a0de6f0cf41753d0e0",
        "5c89c5791233f759b8ae093e5cd9f63cef7cf05b"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Nov 01 03:09:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 01 03:09:30 2018 +0000"
      },
      "message": "Merge \"Do not clobber reserved register X18\""
    },
    {
      "commit": "0b59b54687965f74212198a0de6f0cf41753d0e0",
      "tree": "e51885686656be9795869ccae36f2fa6a02dc7cc",
      "parents": [
        "61afd95d12ed53e776b8ea847d94dedf98c78146",
        "7530bae4f286d828d6394303ee2622c1b01b7e43"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 01 01:54:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 01 01:54:48 2018 +0000"
      },
      "message": "Merge \"Use _PRIVATE versions of futex ops.\""
    },
    {
      "commit": "5c89c5791233f759b8ae093e5cd9f63cef7cf05b",
      "tree": "fa8bf74c16412146cc82660cde455e5ddee536f5",
      "parents": [
        "97d40f9c7b1157783d09861ce76d3a0b3da73cbe"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Oct 31 14:10:32 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Oct 31 14:10:32 2018 -0700"
      },
      "message": "Do not clobber reserved register X18\n\nX18 is now a reserved register for Android. Explicit clobbering of this\nregister causes compile error in Clang 8.0.\n\nTest: m checkbuild\nBug: 111759196\nChange-Id: Icecba52c31b3fbb100aaed5f18a28fa4e27a7028\n"
    },
    {
      "commit": "41c080891ca9d8834c9b50c3ac18dd01c20de9e9",
      "tree": "abdf11b6e000884004c0c82f784a90595f63da05",
      "parents": [
        "41271dd3dfc2ff75702ae3b709eb8afa9464a49f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 31 11:50:26 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 31 12:50:20 2018 -0700"
      },
      "message": "Hold intern table lock for AddImageStringsToTable\n\nFixes a correctness issue where another thread adding an intern string\nafter the visitor could cause duplicate strings.\n\nReduces how often the intern table lock is acquired, probably\nimproving performance.\n\nBug: 116059983\nTest: test-art-host\n\nChange-Id: I5ba6ca3ba7535de6d4ad5cb46750bd23a6e9aadc\n"
    },
    {
      "commit": "7530bae4f286d828d6394303ee2622c1b01b7e43",
      "tree": "6232fa29b6ce0dd2d4ac4cc47615ee08d9da59a9",
      "parents": [
        "97d40f9c7b1157783d09861ce76d3a0b3da73cbe"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Mon Oct 29 20:03:51 2018 -0700"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Wed Oct 31 18:40:21 2018 +0000"
      },
      "message": "Use _PRIVATE versions of futex ops.\n\nThis flag allows some performance optimizations in the kernel for futex\nwords that are only used in one process.\n\nTested: art$ grep FUTEX_  **/*.cc **/*.h\n\nChange-Id: I490b9592ca0f0ab5ab5431682e8b2104f5c917ca\n"
    },
    {
      "commit": "4e7077d795ab94d40c76ae7b9245fd5dcbb7716c",
      "tree": "df6ab853427ab64353933b50637bffb584938274",
      "parents": [
        "97d40f9c7b1157783d09861ce76d3a0b3da73cbe"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Oct 18 13:34:39 2018 -0700"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Wed Oct 31 17:19:19 2018 +0000"
      },
      "message": "Revert^2 \"Implement LockSupport.park with a futex\"\n\nReason for revert: Fixed unused-argument compile error on mac\n\nThis resolves a contention issue where a thread unparking a higher\npriority thread would see a bunch of repeated wakeups. It also resolves\nan issue where LockSupport.parkUntil would not return on time if the\nsystem clock changed while the thread was parked.\n\nBug: 28845097\nTested: ./test.py -b --host --verbose -j20\nChange-Id: Iff71a0e23d0a9fbe072a092bec40a39192c195eb\n"
    },
    {
      "commit": "97d40f9c7b1157783d09861ce76d3a0b3da73cbe",
      "tree": "928c363c96854ac8db404a0ddd11adf8c66ea1c0",
      "parents": [
        "41271dd3dfc2ff75702ae3b709eb8afa9464a49f",
        "5485371cf3894d71e0d0fe2bdf639fde478012ca"
      ],
      "author": {
        "name": "Filip Pavlis",
        "email": "pavlis@google.com",
        "time": "Wed Oct 31 16:16:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 31 16:16:08 2018 +0000"
      },
      "message": "Merge \"Revert \"Implement LockSupport.park with a futex\"\""
    },
    {
      "commit": "2947ba6f1a14d7ea30aa60c3032fa07585cce1b4",
      "tree": "f73195582a9e59b190367b5de19b4c1e8fa2a0f4",
      "parents": [
        "41ae033a4214208b589d8e1df423084728e08716",
        "bcd16eef679c4a11f20e6534b245a52443b6d521"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 31 14:31:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 31 14:31:30 2018 +0000"
      },
      "message": "Merge \"Requeue rather than wake when notifying.\""
    }
  ],
  "next": "41ae033a4214208b589d8e1df423084728e08716"
}
