)]}'
{
  "log": [
    {
      "commit": "175ce3dea89a40e68a685d7f873e8b9f082c45a6",
      "tree": "f4ba53dc33aca3ae71fd006b282a55dc926e53c9",
      "parents": [
        "cc292c611af7cdea6a2d9196fc347468b9233f71"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 06 16:54:24 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 08 01:22:42 2019 +0000"
      },
      "message": "Add callback for notifying that startup is completed\n\nAdd a callback that can be called to denote that application startup\nis completed. This may affect how the profile is collected and how\nstartup related caches are managed.\n\nBug: 123377072\nBug: 120671223\nTest: test-art-host\nChange-Id: If7eb8909cc5e99082a2243b5029380244b46174d\n"
    },
    {
      "commit": "9176a4f86e9f9c579002a3b9947733e01b96baff",
      "tree": "d8e960de8f108f60d21f09ac5e9b461e41dc5bbc",
      "parents": [
        "923917226c2037df8166c715834241c02e37cccc",
        "99fc9389d08c83de66b6f1ca44bd1820329600a6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Feb 24 13:38:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 24 13:38:34 2019 +0000"
      },
      "message": "Merge \"Trust that boot classpath dex files don\u0027t need on device dex file verification.\""
    },
    {
      "commit": "c816d24f1e35ff8e10d5eadc77d5a75d6be5e776",
      "tree": "7be1f416621883f2b4b3bc646dc4c1dabb7def8b",
      "parents": [
        "bc0c48496cb9d22a9e0ee7e1c3d3016289f8150a",
        "e0b2ce413367c9266e9b0657a0505c1ef776b7ae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 22 20:49:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 20:49:03 2019 +0000"
      },
      "message": "Merge \"Revert^2 \"Prevent agents from delaying system daemon threads\"\""
    },
    {
      "commit": "e0b2ce413367c9266e9b0657a0505c1ef776b7ae",
      "tree": "ea17b0478011d74009177bf9cf568718b3482777",
      "parents": [
        "77182cd0f4527538df832eddbc775391c283cffb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 21 19:23:42 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 22 08:56:22 2019 -0800"
      },
      "message": "Revert^2 \"Prevent agents from delaying system daemon threads\"\n\nIt looks like there might be a race between DetachCurrentThread and\nruntime shutdown that the original CL exposed with test 1919. I\u0027m not\nsure why this test exposed this issue, possibly it\u0027s due to the\nremoval of the Daemon events making the test faster, thus more likely\nto get to runtime-shutdown without the testing thread having fully\ndetached.\n\nThis reverts commit c08c10713e8884e8adfbf6a8e370a9ec96c1883f.\n\nReason for revert: (Hopefully) made test 1919 resistant to the flake\n                   it was experiencing.\nTest: ./test.py --host --ndebug -j80\n\nBug: 123696564\nBug: 124284724\n\nChange-Id: I2e58a71aa174f6b89e57c31378b0fe5bb41a8844\n"
    },
    {
      "commit": "99fc9389d08c83de66b6f1ca44bd1820329600a6",
      "tree": "2cc61c6e3e7984939e88ce4922886bcef18e0fa4",
      "parents": [
        "c76c4cc4230f78aaa15decc94f28ec7de3c3aa02"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 20 13:17:27 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 13:09:40 2019 +0000"
      },
      "message": "Trust that boot classpath dex files don\u0027t need on device dex file verification.\n\nBug: 119800099\nTest: boots\nChange-Id: I6d48a38945d601a3d74ebde2496c1446711c35fe\n"
    },
    {
      "commit": "c76c4cc4230f78aaa15decc94f28ec7de3c3aa02",
      "tree": "27dca36f773eb16c0944f0eb35f05a8067855dcd",
      "parents": [
        "c0584d97133a52b0fbc8347ea6edcd9c472de638",
        "144f82c2714be2bef9deb159e9d6ef4de583cc2c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 22 12:44:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 12:44:04 2019 +0000"
      },
      "message": "Merge \"In boot image experiment mode, treat boot classpath classes as verified.\""
    },
    {
      "commit": "144f82c2714be2bef9deb159e9d6ef4de583cc2c",
      "tree": "4526313c0e87e9cb35841ff91ef556e04aaf31e4",
      "parents": [
        "ec956e8866e4ee9fe59bb99b4db6a3b6017937f1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 09:43:18 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 08:45:27 2019 +0000"
      },
      "message": "In boot image experiment mode, treat boot classpath classes as verified.\n\nBug: 119800099\nTest: m \u0026\u0026 boot\nChange-Id: Ib7fbdf46c1fd65a79f07c5331eae4a54d526ce5b\n"
    },
    {
      "commit": "c08c10713e8884e8adfbf6a8e370a9ec96c1883f",
      "tree": "84dc682b40f38d0377639befe6f3d43e5655a43c",
      "parents": [
        "3611fdf703a6417c08a2e3d6e642d5936318de18"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 10:15:28 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 10:15:28 2019 +0000"
      },
      "message": "Revert \"Prevent agents from delaying system daemon threads\"\n\nThis reverts commit 3611fdf703a6417c08a2e3d6e642d5936318de18.\n\nBug: 123696564\nBug: 124284724\nReason for revert: b/124284724\n\nChange-Id: I546758b4cbb5e3f62f7b66a2faed544abce0d9c2\n"
    },
    {
      "commit": "3611fdf703a6417c08a2e3d6e642d5936318de18",
      "tree": "ef152ff80f42b6486e5a02eee3fb7a02fbef15e7",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 06 15:10:58 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 11 11:03:22 2019 -0800"
      },
      "message": "Prevent agents from delaying system daemon threads\n\nThe runtime starts several important daemon threads that are\nresponsible for various GC related tasks (i.e. FinalizerDaemon, etc).\nThe runtime cannot be considered fully started until these threads\nhave been started or will be started soon.\n\nIt was possible for agents to delay the startup of these daemons\narbitrarily (while calling arbitrary java code) by never leaving the\nVMInit event or by never returning from the daemons ThreadStart\nevents. This could cause deadlocks or other errors when using some\nagents, such as libjdwp.\n\nIn order to prevent these issues and more closely match other java\nlanguage runtimes we launch these threads before sending the VMInit\nevent and suppress their ThreadStart events. The openjdkjvmti plugin\nthen waits for the Daemon threads to actually begin executing before\ncalling the VMInit event or any other agent code. This prevents the\nagents from seeing threads appear from nowhere.\n\nBug: 123696564\nTest: while atest CtsJdwpTestCases; do; done;\n\nChange-Id: I7e07187f3e8670f32df0490cb419585c13d81765\n"
    },
    {
      "commit": "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34",
      "tree": "9360a99feb7a1aa6fe7b2685429ddb49b17a5e7c",
      "parents": [
        "c66d6a7569ef72d9e9eb115bb7b663ccc8df5179",
        "7210108e6d930f9b8bcf5eac6b7a03ea29f92f84"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "message": "Merge changes I14c7cddd,I4a39d0e8,I3f24c8f4,I9699f138\n\n* changes:\n  Replace StringPiece with std::string_view in art/runtime/.\n  Replace StringPiece with std::string_view in HashSet.\n  Replace StringPiece with std::string_view in Signature.\n  Replace StringPiece with std::string_view in class.h.\n"
    },
    {
      "commit": "7210108e6d930f9b8bcf5eac6b7a03ea29f92f84",
      "tree": "809a2477f11a98eeb5f258635489424841e6feba",
      "parents": [
        "2ef01100bb56b3f8ab5fbc886a7066d721290d74"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:16:30 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:05:17 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in art/runtime/.\n\nAnd in art/test/.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I14c7cddd7ba4fb2183c643d32a89b594008d8bd0\n"
    },
    {
      "commit": "a2fed081e33bcc956ebc545aacd654ec6a32673d",
      "tree": "13e1fc19a737dff8cd416725bce6329086516c99",
      "parents": [
        "2860c19944b64c581a8af63339805409c0584d2f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 01 09:34:43 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:00:37 2019 -0800"
      },
      "message": "ART: Optimize array accesses\n\nOptimize computation of the data offset of arrays by adding\na constant for the array payload field offset, and templatized\nversions of the computation. Add a correctness check on runtime\ncreation.\n\nTemplatize CheckVTableHasNoDuplicates.\n\nDecreases dex2oatd preopting of a big app from 165s to 151s.\n\nBug: 123888325\nTest: m test-art-host\nChange-Id: I8db9df545dc807a307aef8af7dad7a15757670b1\n"
    },
    {
      "commit": "7f88c1a269754001bfcaf311b378cf1cc71acf84",
      "tree": "147bb988929e8bd8827c4b148f28da4c28c0ea70",
      "parents": [
        "5247113f3277fd679e3e1beeb6fbfb30797aa481"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Nov 06 11:42:41 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Jan 30 14:09:25 2019 +0000"
      },
      "message": "ART: Enable ISA features run-time detection for ARM64\n\nOn a target run-time detected ISA features can be more accurate than\ninstruction set features based on a build-time information such as an\ninstruction set variant or C++ defines. Build-time based features can\nbe too generic and do not include all features a target CPU supports.\n\nThis CL enables instruction feature run-time detection in the JIT/AOT\ncompilers:\n\n- The value \"runtime\" to the option \"--instruction-set-features\" to try\nto detect CPU features at run time. If a target does not support run-time\ndetection it has the same effect as the value \"default\".\n- Runtime uses \"--instruction-set-features\u003druntime\" if run-time detection is\nsupported.\n\nThe CL also cleans up how an instruction set feature string is processed\nby InstructionSetFeatures::AddFeaturesFromString. It used to make redundant\nuses of Trim in subclasses. The calls are replaced with DCHECKs\nverifying that feature names are already trimmed.\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing --interpreter --jit\nTest: art/test.py --host --optimizing --interpreter --jit\nTest: Pixel 3 UI booted\n\nChange-Id: I223d5bc968d589dba5c09f6b03ee8c25987610b0\n"
    },
    {
      "commit": "107ce792fad04c19cdf65f47e4fd6801d54ad8cb",
      "tree": "a5bff492b83a85d1bba5020d81ded98d14c71829",
      "parents": [
        "bd0eb2ca58c8edc6beaaae12fc9ee4ca64cd28bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 26 01:06:17 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 26 01:06:17 2019 +0000"
      },
      "message": "Revert \"Revert \"Load libopenjdk and libjavacore with the runtime namespace.\"\"\n\nThis reverts commit bd0eb2ca58c8edc6beaaae12fc9ee4ca64cd28bc.\n\nReason for revert: Fixed ld.config files.\n\nChange-Id: I3933faa7d6d4b981d3081e8624fa4170a4594bc6\n"
    },
    {
      "commit": "bd0eb2ca58c8edc6beaaae12fc9ee4ca64cd28bc",
      "tree": "1ebf839f5c3e021114a942ac0666d6a2bf401906",
      "parents": [
        "94c8670e6e3f7291c1e4e36f6a009d606ca86050"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 25 22:42:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 25 22:42:22 2019 +0000"
      },
      "message": "Revert \"Load libopenjdk and libjavacore with the runtime namespace.\"\n\nThis reverts commit 94c8670e6e3f7291c1e4e36f6a009d606ca86050.\n\nBug: 123424163\n\nReason for revert: Fails boot\n\nChange-Id: I9aa6a296275d1a2e19cb3801d9082293b2b400f0\n"
    },
    {
      "commit": "94c8670e6e3f7291c1e4e36f6a009d606ca86050",
      "tree": "a5bff492b83a85d1bba5020d81ded98d14c71829",
      "parents": [
        "fe427267d2657d9ea9788ca517abcf3bb7d5ce0a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 25 12:36:47 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 25 12:57:52 2019 +0000"
      },
      "message": "Load libopenjdk and libjavacore with the runtime namespace.\n\nPassing java_lang_Object will make it find the runtime apex as\nthe dex path, hence the runtime namespace.\n\nTest: m and boots\nChange-Id: I4842e75e2182c8d55bed2c62cc14335a4eb3ddc0\n"
    },
    {
      "commit": "6ad2e8e2980503218d7acf8ed17a7e2cf42a9589",
      "tree": "064097873dd4728f73addc01f1c430ae30ca15b0",
      "parents": [
        "a966376ac9ea3bf3b52ae52d47985d4967a99c3d",
        "0b4d146d628b359962db969c6138b18a1bcf49a9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 22 14:56:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 22 14:56:11 2019 +0000"
      },
      "message": "Merge \"ART: make generational CC a runtime option\""
    },
    {
      "commit": "e7681823f8259c8c04ce0c361746216606784e69",
      "tree": "8bd248fc6be126d7d4e55bb4072ed24b2851ebbd",
      "parents": [
        "90faceb71e25748172ba6369209f8a2a66735394"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 16:25:33 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 10:22:27 2019 +0000"
      },
      "message": "hiddenapi: Print warnings for @CorePlatformApi violations\n\nWhen accessing a method/field at runtime, determine the context of both\nthe caller and the callee, and add new logic for the case\n\"platform -\u003e core-platform\" which used to be always allowed.\n\nIf the callee is marked with kAccCorePlatformApi, access is allowed.\nIf not, a warning is printed into logcat.\n\nBug: 119068555\nTest: 674-hiddenapi\nChange-Id: I64839596bf6eb06d7a169fd59b18fd82c140ce6e\n"
    },
    {
      "commit": "0b4d146d628b359962db969c6138b18a1bcf49a9",
      "tree": "9aa05caed1a3540cc497bb6289fcd0473f96b6fe",
      "parents": [
        "3c29c66933f81dbb9af17caa197257ac67ee3c78"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Nov 29 13:25:35 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 18 16:32:55 2019 +0000"
      },
      "message": "ART: make generational CC a runtime option\n\nAdd -Xgc:[no]generational_cc option to control whether generational\nConcurrent Copy collector is enabled when art is launched.\n\nRepurpose the environment variable and preprocessor macro name\n`ART_USE_GENERATIONAL_CC` to selecting the default behavior (if unset,\nthe default is to use Generational CC collection by default).\n\nTest: Run art with -Xgc:[no]generational_cc along with -XX:DumpGCPerformanceOnShutdown on some benchmarks to see if minor GC runs. parsed_options_test is updated to test this new option.\nTest: make test-art-host-gtest-parsed_options_test\nTest: make test-art-target-gtest-parsed_options_test\nBug: 112187497\nBug: 67628039\nChange-Id: I6b4660b06f7e793911a2601bed24c33777190741\n"
    },
    {
      "commit": "96259f1f2f37d222ce321fd223655d1134a8ba01",
      "tree": "e77eba088bd556dc44375e68eaa622a8301617aa",
      "parents": [
        "3c29c66933f81dbb9af17caa197257ac67ee3c78"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 18 10:04:51 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 18 11:31:26 2019 +0000"
      },
      "message": "Pass the Java caller\u0027s location to OpenNativeLibrary.\n\nWill be used to find the linker namespace to use.\n\nBug: 122874359\nTest: m, gtest, run-test, CtsJdwpTests\n\nChange-Id: Ibeebe20844e2bbdc306d65fb4f2ee3237343fa09\n"
    },
    {
      "commit": "1c0ae84632a55727aef69fda618aa11a8621d02d",
      "tree": "cdccb8cb10ed70033791d02d127951ce66ee898b",
      "parents": [
        "26d4df2487e728bd8c82c3f500b554b4ab78ee1f"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Jan 11 16:52:24 2019 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Jan 11 16:52:24 2019 +0000"
      },
      "message": "ART: fix post gc weighted allocated bytes metrics\n\nStop post GC measurement after the last GC, since VM shutdown is not a\nreal GC.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: Ia00fbbd8134aaea38d570c43ba87c768cbe4baae\n"
    },
    {
      "commit": "2d22ffce2b2b97a323ea09ec3f5015fb256ec57f",
      "tree": "658555def3f25508bd6b3777f712ca281e86a12b",
      "parents": [
        "fe2886de2a9f06f286fe905ce8417981b9089c5c",
        "e5d2398fa5be5effbc552b244387119dc53a9671"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 10 18:10:18 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 10 18:10:18 2019 +0000"
      },
      "message": "Merge \"ART: Forward-declare Context\""
    },
    {
      "commit": "fe2886de2a9f06f286fe905ce8417981b9089c5c",
      "tree": "060025813c4ab6d3bfd98aaafa54a97be342a0c0",
      "parents": [
        "d7d3f6fa1870b9e9b8f58ab7854e5eeee071ba2e",
        "226805d9b81ba442251d0e2c4baedc36fcda6592"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "message": "Merge \"Deoptimize zygote compiled methods in DeoptimizeBootImage.\""
    },
    {
      "commit": "e5d2398fa5be5effbc552b244387119dc53a9671",
      "tree": "f32b3f3d67c469d9bdc83961ef9c4d863c351f0a",
      "parents": [
        "639b2b1f3a675135d443fc380323fbc48639a7eb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 08 10:34:26 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Forward-declare Context\n\nMove deletion to thread.cc, which allows to forward-declare\nContext.\n\nBug: 119869270\nTest: mmma art\nChange-Id: Ifd9006cd3457d4ab708a289a7f6e1cdf2591c596\n"
    },
    {
      "commit": "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2",
      "tree": "b5647e7c06573e5e90d64b1c79d67f225412b03a",
      "parents": [
        "90793b3f3fa3fee04b196555f1656d432993f799",
        "16bd6ac8e3446355089d91f65d0ef8c6015f2283"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Dec 31 16:52:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 31 16:52:54 2018 +0000"
      },
      "message": "Merge \"ART: show exact bytes along with human-friendly format\""
    },
    {
      "commit": "16bd6ac8e3446355089d91f65d0ef8c6015f2283",
      "tree": "c0b03f6d4695188a04e0f0b7faf616c12912e5c2",
      "parents": [
        "96453b7d6aa445c6609aa465df5d66ae0beb7956"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Wed Dec 19 17:55:23 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Dec 27 17:13:06 2018 +0000"
      },
      "message": "ART: show exact bytes along with human-friendly format\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I804d4aa85a1a5ed1d0b21eb934c71f73469426e9\n"
    },
    {
      "commit": "ada33d754fdc987e2658a7bab38f5ca7c70f266c",
      "tree": "e588bba5ec19664e0b035a0d1cd43c96da6c05bd",
      "parents": [
        "e29b950562bae79fe8eb22e13a9cb533c9d8c5d0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 17 13:17:30 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 19 16:54:23 2018 -0800"
      },
      "message": "Move startup thread pool back into runtime\n\nAdded logic in heap trim to delete the thread pool, if there are no\nactive users.\n\nAdded a scoped accessor to prevent ref counting errors.\n\nMotivation, have workers already created when the app images are\nloaded.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I8ea776d74e88601222a9989e0c6dac34cf77c683\n"
    },
    {
      "commit": "226805d9b81ba442251d0e2c4baedc36fcda6592",
      "tree": "3a256b1d36894d8d43ec9650f2a3f55c90c4730c",
      "parents": [
        "96453b7d6aa445c6609aa465df5d66ae0beb7956"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 14 10:59:02 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 19 09:22:01 2018 +0000"
      },
      "message": "Deoptimize zygote compiled methods in DeoptimizeBootImage.\n\nThose methods don\u0027t get compiled with the \"debuggable\" flag,\nso we need to deoptimize them.\n\nAlso fix a bug revealed by the new test where a concurrent\nJIT collection happens when trying to disable it.\n\nAlso make DeoptimizeBootImage truly mutator lock exclusive.\n\nTest: 689-zygote-jit-deopt\nChange-Id: I00607dbe100350c5328293c35c87946fa97924b8\n"
    },
    {
      "commit": "de94ea7bf76fbfbbe8106b6da40751216f081304",
      "tree": "fe78aa7c12902e21a25350486f63770856328fb6",
      "parents": [
        "570886357e2c91ac913f34abdaf559432ce00853"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 16 10:15:49 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Dec 17 12:00:04 2018 +0000"
      },
      "message": "ART: add dump region info runtime option\n\nIntroduce two new runtime options, DumpRegionInfoBeforeGC and\nDumpRegionInfoAfterGC, for printing the live bytes ratio for non-free\nregions before and after each GC cycle.\n\nTest: Run art with -XX:DumpRegionInfoBeforeGC and -XX:DumpRegionInfoAfterGC on some benchmarks.\nBug: 119486919\nChange-Id: I0d6f210669b85d94034178815f6cae6fd19ca397\n"
    },
    {
      "commit": "0ace5633680af8864b76b4f45d63b3407e4dcdf5",
      "tree": "526435a2877d3d04eaa471238b4efd37a347d05d",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 11:11:47 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 13:12:15 2018 +0000"
      },
      "message": "Revert^2 \"Allow boot image for a part of the boot classpath.\"\n\nThis reverts commit fb83d76a8b186df05f874216b535f5ad57e7bd02.\n\nFixed host run-test dependencies, cleaned up target run-test\nand gtest dependencies.\n\nTest: rm -f out/host/linux-x86/framework/conscrypt-hostdex.jar\n      testrunner.py -b --host --optimizing -t 660-clinit\nBug: 119868597\nChange-Id: Ia0a5aba0223ae6616bf3e109daf0af7b8355d048\n"
    },
    {
      "commit": "93c21ba3311db5cecaa1a6a178a44c662ebd3d43",
      "tree": "c51226e865e56ea9bd0f9738ccf1e09390952e44",
      "parents": [
        "8f86ef169923d3f3a7eaac7346f0f3fac357a274"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 13:08:30 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 12 17:36:49 2018 -0800"
      },
      "message": "Avoid waiting for threads to create\n\nAvoid blocking for threads to create in the constructor. This is\nsafe because the destructor will block until the threads join.\n\nAlso avoid creating the thread pool if the image only has one\nblock.\n\nGet the GC task proccessor to delete the thread pool.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I80399525caa0775eddade73c11e7ebc06e41416a\n"
    },
    {
      "commit": "6e0d3256c08feab82627b886329c7ec21e85093d",
      "tree": "d775990116e929b053fed777ee256e22f4ef2c8c",
      "parents": [
        "6b36d8025de5237b57e7bf23033bfc61a112d6cd"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Dec 10 15:22:45 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Dec 11 11:05:47 2018 +0000"
      },
      "message": "ART: add post gc weighted allocated bytes metrics\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I2fc30c7dbb2d12ab8c3f98ad1f96672af6c5d438\n"
    },
    {
      "commit": "0633365c40e32fda28d06ef94e6e3e3d8dab697f",
      "tree": "11f28f180937d2fdbd934d2f9f9ada2fa30f42b0",
      "parents": [
        "b0c3661ac792f4243deddddad2e940a0dce67b0a",
        "3ea432213ec55691f184dbfddbbc1b96a114cd16"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 17:03:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 17:03:12 2018 +0000"
      },
      "message": "Merge \"Create thread pool only during app image loading\""
    },
    {
      "commit": "b023b3fd99a3369479e965c8e5d1d79b2491f75d",
      "tree": "12899651d6ec24d35a34babbb992e189df77b93f",
      "parents": [
        "2d17c5149bd96327e8e306986f3539429d1d98fe",
        "ad2845c0c1322210d39ba1cdbecb2094e156120c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 13:03:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 13:03:46 2018 +0000"
      },
      "message": "Merge \"ART: fix overflow in weighted allocated bytes metrics\""
    },
    {
      "commit": "3ea432213ec55691f184dbfddbbc1b96a114cd16",
      "tree": "3bbbff5fa296ae99e5fe1a908b02ae22cc5ff5f8",
      "parents": [
        "e3c6dfe2009d2fad6f8e4401cb17935bdd09ab9e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Dec 08 20:44:50 2018 -0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 10 11:38:18 2018 +0000"
      },
      "message": "Create thread pool only during app image loading\n\nPrevent having a persistent thread pool that is only used during app\nimage loading. This saves RAM.\n\nBug: 116052292\nBug: 120622973\nTest: test-art-host\nChange-Id: I79ff75d593e001a6c48d50b95865550a24772078\n"
    },
    {
      "commit": "91f1032505cfaec3aef51fc0a3085b213813f0ed",
      "tree": "6469e772d9fb562d26dc1d22dd0b71844bbb743f",
      "parents": [
        "573b3877fac3c5a4a9703301502694fe7219b21c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 18:04:10 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 18:13:55 2018 +0000"
      },
      "message": "Revert^2 \"Pass boot class path to ImageSpace::LoadBootImage.\"\n\nThis reverts commit db4b1deebf425be5f1d0f597d1ef540f19908324.\n\nFixed JDWP tests, see \"Test:\" stanzas below.\n\nChange-Id: I6fb56ac990b78164cbd3f93c9f6df66e0dd9a813\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64\nBug: 119868597\n"
    },
    {
      "commit": "ad2845c0c1322210d39ba1cdbecb2094e156120c",
      "tree": "66fe93516eda836376a98b88cf037af11c26e361",
      "parents": [
        "17ed987eeebdebbd1b923c3c2a6887a233cb7517"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Dec 07 17:39:14 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Dec 07 17:50:58 2018 +0000"
      },
      "message": "ART: fix overflow in weighted allocated bytes metrics\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I59f7e8998ee055aac28e50884fcabf19b48fbf17\n"
    },
    {
      "commit": "573b3877fac3c5a4a9703301502694fe7219b21c",
      "tree": "4c921582be3fb3bdd83af5b62c482fc066ea5638",
      "parents": [
        "1e2e714cf25f37e5e925477cdd68fe2baf82c134",
        "89036a3a16a59708d4f59d63fa923ddc6c029eb8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 07 17:37:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 17:37:35 2018 +0000"
      },
      "message": "Merge \"ART: Set Runtime fault message on abort\""
    },
    {
      "commit": "db4b1deebf425be5f1d0f597d1ef540f19908324",
      "tree": "5851aab8a4d71b49dbd272b822bfd1ae2cbd08df",
      "parents": [
        "e3c6dfe2009d2fad6f8e4401cb17935bdd09ab9e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 17:18:07 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 17:23:26 2018 +0000"
      },
      "message": "Revert \"Pass boot class path to ImageSpace::LoadBootImage.\"\n\nThis reverts commit d19085141ad9c71eae1b0ff585999ac8e27dadd4.\n\nAlso squash a revert of\n    Fix oatdump tests on target.\n    (commit 77eea0898aca2881a87afd177a0422870c39a318)\n\nReason for revert: Broke JDWP tests.\nBug: 119868597\nChange-Id: I005097d2d96014c961e5a4c0b089e7675004febc\n"
    },
    {
      "commit": "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
      "tree": "9f00efead2c694b2a590f8c4890a9052571bbcff",
      "parents": [
        "260a50cb43618dfdd325e7c89745d8bc38b20292",
        "d19085141ad9c71eae1b0ff585999ac8e27dadd4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "message": "Merge \"Pass boot class path to ImageSpace::LoadBootImage.\""
    },
    {
      "commit": "73d8cc7c48dc9fa77fe6b61a6894a28112c033af",
      "tree": "47a225708b3ddbc03c6a45aeed6c9d1ddead13fa",
      "parents": [
        "883931d0cc9c48573c13836b80fbad465bdaa0c9",
        "ce9ed3669d041d9eb2f5489596f133248d90f497"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 07 06:41:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 06:41:18 2018 +0000"
      },
      "message": "Merge \"Enable JIT in zygote.\""
    },
    {
      "commit": "89036a3a16a59708d4f59d63fa923ddc6c029eb8",
      "tree": "aff6b601d1bb6cb9925ac4764eda938d238948b2",
      "parents": [
        "dc1309c01d7b4cbc2c9f5803f7f643fad646f9ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 13:05:20 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 15:14:50 2018 -0800"
      },
      "message": "ART: Set Runtime fault message on abort\n\nIn Runtime::Abort, set the fault message when not on Android. This\nwill help re-print the message at the end of aborts when the\nunexpected-signal handler is being used.\n\nBug: 120506942\nTest: mmma art\nTest: manual\nChange-Id: I0b81049d700012250a16c45d0657b06d1f4d8aa0\n"
    },
    {
      "commit": "44f67607b33e36c118fe0f62c062865b2bc8bd8f",
      "tree": "a17f7b4a6f7affe866377ac5ee7924195ef8fbe5",
      "parents": [
        "7fbc4a59ba2e60d869313d7961662430df83b2cb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:27:27 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Rewrite Runtime fault message to be lock-free\n\nTo avoid the lock in a general header, rewrite the fault message\n(that is almost unused) to be lock-free. Store the string as a\nheap object owned by Runtime.\n\nBug: 119869270\nTest: mmma art\nTest: m test-art-host\nChange-Id: Ib1e027a1543c46d25953119f05792f0e874d6a3d\n"
    },
    {
      "commit": "d19085141ad9c71eae1b0ff585999ac8e27dadd4",
      "tree": "24284e84f5df4601bacc2a97c56af1bc5950c253",
      "parents": [
        "523940b40f9701504d6e007dd2af48f315038dc1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 14:57:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 06 14:43:07 2018 +0000"
      },
      "message": "Pass boot class path to ImageSpace::LoadBootImage.\n\nWhen loading the boot image by ImageSpace, do not rely on\nthe boot class path (BCP) recorded in the primary boot image\noat file. Instead, check the BCP from image against the BCP\nprovided by the Runtime, i.e. from -Xbootclasspath:_ or the\nenvironment variable BOOTCLASSPATH. For now, allow Runtime\nto extract the BCP from the primary boot image oat file when\nwe have -Ximage:_ but no BCP.\n\nAlso pass the boot class path components down to the OatFile\nso that we can open and use the original dex files when we\ndo not have copies in the vdex files. This allows compiling\napp prebuilts when the boot dex files are uncompressed and\naligned in the original jars.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: Manually create boot image jars with uncompressed and\n      aligned dex files, compile a boot image with dex files\n      not copied into vdex files and use this boot image for\n      compiling a prebuilt services.{art,vdex,odex}.\nBug: 119868597\nChange-Id: If9411ddbecf6bb90bfa9233040931c5e833f6aee\n"
    },
    {
      "commit": "ce9ed3669d041d9eb2f5489596f133248d90f497",
      "tree": "f95fc9d6fc78119686fe91db5c2aaabd31b6abb1",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 03:19:28 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 06 14:12:34 2018 +0000"
      },
      "message": "Enable JIT in zygote.\n\nbug: 119800099\nTest: boot test\nChange-Id: I92dc59adeaf1202a984d363b1420ef26e53ebe84\n"
    },
    {
      "commit": "eac4d6aec60053f7bbec9b833e21702f34ba3d93",
      "tree": "4a51da7a94e3022f9a4a485d0141c11220c0ba64",
      "parents": [
        "274ed2ea9d496f75030f849c4259b35ecb4d35c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 12:33:46 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 12:52:16 2018 -0800"
      },
      "message": "Reduce runtime thread pool stack size\n\nReduce the size to 64k to avoid using as much virtual address space.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I370cfb6c8f7060b674e5bc67a0b85ac7adf46041\n"
    },
    {
      "commit": "274ed2ea9d496f75030f849c4259b35ecb4d35c1",
      "tree": "6a371c40b6f754db7687aceb538f81f85871373f",
      "parents": [
        "18851145160a85f028432c07247485250167b155",
        "c6068c7f07785f326090f2c3dc0d5679adbfcc69"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "message": "Merge \"Parallel image decompression\""
    },
    {
      "commit": "c6068c7f07785f326090f2c3dc0d5679adbfcc69",
      "tree": "e0d729e4c73cecb87413341a7c6f3fd0ce876cf5",
      "parents": [
        "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 16:00:58 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 04 14:08:55 2018 -0800"
      },
      "message": "Parallel image decompression\n\nAdd a runtime thread pool to facilitate parallel app image loading.\n\nUse the thread pool to decompress the image, this results in a ~1%\napp startup speedup.\n\nTest: test-art-host\nTest: manual\nBug: 116052292\n\nChange-Id: If35f71ff632ac58e67d11eed4b5f5b19656cc301\n"
    },
    {
      "commit": "2d7329b5379a739751448ee93ae7c52d15d0c07b",
      "tree": "76de7c6bd8350792661789ecae4a4943eb36b65c",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 19:58:18 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Dec 04 19:31:28 2018 +0000"
      },
      "message": "ART: add weighted allocated bytes metrics\n\n`process_cpu_start_time_` is moved from `art::Runtime` to `art::gc:Heap`\nso that it could be reset when the app starts (current process is forked\nfrom Zygote).\n\n`process_cpu_end_time_` is removed from `art::Runtime` because it\u0027s only\nused when the runtime is about to shutdown, so it suffices to capture it\nin a local variable.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I154fdb6acdf4e0c21dff835807bd4e2cf311e3d1\n"
    },
    {
      "commit": "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06",
      "tree": "b68a5f5163f8da0da87d671a225addaa2a13095f",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "message": "C++17 compatibility: make WITH_TIDY\u003d1 happy again.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: I8b69ea3815e14bb6eb27f40c0dd01a85b340a355\n"
    },
    {
      "commit": "a3283e4d74954a6409db48ef26a49022dfadac97",
      "tree": "818c37d2d6ca1fbd9d31242c3e43a8b9205350d9",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 10:19:12 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 10:19:12 2018 +0000"
      },
      "message": "Remove obsolete code related to patchoat.\n\nRemove code that was opening boot oat files from /system/ as\nread-only for failed patchoat. Patchoat has been removed.\n\nTest: m test-art-host\nTest: testrunner.py --host --optimizing\nBug: 77856493\nChange-Id: I0c2b804c28bb34a749218d75875a4fbee9238b7f\n"
    },
    {
      "commit": "80e6a0917361273d471af731fee123f6b9e5e094",
      "tree": "16ffc3af15e57113e073f97955b5675244ef91f5",
      "parents": [
        "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "message": "Merge \"Refactor code around JIT creation.\""
    },
    {
      "commit": "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b",
      "tree": "909d18e31d319313a0729019258418980c810d79",
      "parents": [
        "c754cc8e1c2dbcb1331ec2bed3ea0787bdd2b5c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 10:03:13 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 11:09:49 2018 +0000"
      },
      "message": "Refactor code around JIT creation.\n\n- Create the JIT early on.\n- Have dedicated zygote spaces, that get assign after the fork.\n- Re-parse compiler options after fork to take into account customization\n  of debug flags by the child.\n\nCurrently, we only create the thread pool in the child, so the zygote\nisn\u0027t jitting yet.\n\nBug: 119800099\nTest: test.py, device boots\nChange-Id: I591ce933ebf54a67937ab1d05206534f55ef2f65\n"
    },
    {
      "commit": "d6e178e92c9ac7eb4fe433fff1dc169a0edf2ab9",
      "tree": "014cbf230b0d2433ab02a598ebe784e88ba3c5fa",
      "parents": [
        "498d7c1752d02f6687c2b19a077ad1942d1d6348"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 12:58:30 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 13:21:18 2018 +0000"
      },
      "message": "Revert^2 \"ART: add GC time ratio metrics to GC performance\"\n\nMake GC time ratio metrics work for all collectors.\n\nThis reverts commit 4d57c69ab7753690738d9dc802b5b640cb6af491.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I5cce0cf2a5204126b70b7c8fdf686986f9b3d7e7\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "ad28f5e02b3adc8ee7fec2f323eeb42bc96d596a",
      "tree": "53722e481afd203846ec45bf3d65ef3e32b5d419",
      "parents": [
        "fe79b5939696c87f66d9d39540fe0f38369c5158"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 17 09:08:17 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 31 06:32:12 2018 +0000"
      },
      "message": "ART: add hook for framework to set SELinux context\n\nAdds a new zygote hook for system server, nativePostForkSystemServer,\nso the process can transition between the system_server_startup and\nsystem_server SELinux domains.\n\nMemory resources for the JIT are allocated in the hook as setting the\nSELinux domain with setcon() requires that the process is still single\nthreaded.\n\nBug: 66095511\nTest: device boots\nTest: art/test.py --host --64\nChange-Id: Ic840634c5c59906b8d344c2edffafeb9b13a409f\n"
    },
    {
      "commit": "0ee508253edcdee41a80fcbf1511234ca176233d",
      "tree": "4c1471226b650c30a21aabb525392c2cebfa337a",
      "parents": [
        "eead626e0567d11ed0402e9586a99ca4a1d023eb",
        "1130659b0d948806e7ca974ead8ad2bcc1951d13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "message": "Merge \"Refactor MemMap::MapAnonymous().\""
    },
    {
      "commit": "1130659b0d948806e7ca974ead8ad2bcc1951d13",
      "tree": "9046a016fafc7f9bff4e34732aa8f89ed81ad46c",
      "parents": [
        "1c1442a498fd3f9ddc5d2bb04baa7ccd2d3539c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 26 14:22:59 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 10:20:32 2018 +0000"
      },
      "message": "Refactor MemMap::MapAnonymous().\n\nRemove the address argument from the shortcut overload and\nintroduce one more shortcut overload. This makes it easier\nto find all uses where we pass non-null address hint.\n\nRemove `requested_begin` parameter from some constructors\nwhere we were always passing null. Rewrite some tests to\nuse the reservation API.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 118408378\nChange-Id: Ibbbb96667e7cc11cf7fea119892463d8dbc9a8b5\n"
    },
    {
      "commit": "cb4f09e050ec2ef98b7b0b359f36fbb9d36a6e10",
      "tree": "1057f31fea9bb05eaa35bc27f9c2b08b55043f80",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Oct 21 08:45:22 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 29 14:52:09 2018 +0000"
      },
      "message": "Move some fast invoke checks to CanUseMterp\n\nThis speeds up arm64 golem interpreter benchmarks by 1.5%.\n\nTest: test.py -b -r --interpreter --host\nChange-Id: Ia9d7c885cd488de56c6b726373072070b509bdf1\n"
    },
    {
      "commit": "70f5fd0770adbef645950895309a2a63c3bde7c0",
      "tree": "d9794484e83858cf7e33551eb8a108e07f46b18c",
      "parents": [
        "52ecb65ae9e1ad6fe7f58beecc88cdc08e08f0c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 24 19:58:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 26 08:44:12 2018 -0700"
      },
      "message": "ART: Add class-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for class instance allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: I32529f0221a836452c58687330a91ac0d5fde162\n"
    },
    {
      "commit": "98ea9d9d82ab078ca10fa7f8e02eddda94cf1d98",
      "tree": "a848b7e41ff227a2d3d4d6795ec11089f39cb6ca",
      "parents": [
        "02338775e33b553be51d44ff60bb1ef8e527bd94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 14:06:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 23 15:19:55 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles runtime.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0\n"
    },
    {
      "commit": "50b47432f8df853b8479179154382ef30bdf30c9",
      "tree": "ec702341b889cc43cc75625ddad8c1bebeff3c2f",
      "parents": [
        "f06ca50f0aff5167f767b09f624c60186290a623"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 18 12:26:34 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 18 12:43:06 2018 +0100"
      },
      "message": "Move cpp-define related static_assert to runtime.\n\nThe runtime is build with both debug and non-debug configs,\nso checking it there covers more cases.\n\nTest: Check this caches cases which previously passed.\nChange-Id: I543547e517b79289438b19ed9e18f5a6d0b74172\n"
    },
    {
      "commit": "710d785a56c7bacb370d61a244cbf2d69108f9e1",
      "tree": "8a5dba5c86d9223bc4eb8d0dba46681fa94ce8de",
      "parents": [
        "3cf0a3e7223dc9792e92e7cace1ab165ba30ef7c",
        "74ccee6e0806401f664286c6597345ef57207ac8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 15 19:48:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 15 19:48:43 2018 +0000"
      },
      "message": "Merge \"Add extra handling for loading intern tables\""
    },
    {
      "commit": "74ccee6e0806401f664286c6597345ef57207ac8",
      "tree": "491e36b077b059bd348a0817525412228df0a57c",
      "parents": [
        "dc3b4670b170b39a8bd6498d4de69c1513af1db2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 10 10:30:29 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 15 09:17:14 2018 -0700"
      },
      "message": "Add extra handling for loading intern tables\n\nAdd an extra pass to fix up the app image intern table using a\nvisitor. This visitor records if there are any image conflicts and\navoids the image fixup phase if there are none.\n\nAdded logic to bulk add the image intern table to the boot image.\n\nWill add optimizations later.\n\nBug: 116059983\nTest: test-art-host\n\nChange-Id: I50a6fdaf9c9a049a3d120e88d63fe7da8c9a298c\n"
    },
    {
      "commit": "d55f6ee508a9a3c81bb1911bb203a22845bfab86",
      "tree": "38a8793c9d1c182771f89075c1218ec9d1c2da75",
      "parents": [
        "332c8e36356b21d65c4003612334a681150a5643",
        "0aa7a5a6a7bc350b79351f52e26c97747e927acf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 12 17:58:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 12 17:58:18 2018 +0000"
      },
      "message": "Merge \"Revert^4 \"JVMTI PopFrame support\"\""
    },
    {
      "commit": "231a9538fcf96b016f8bea211f0c09359c4a182f",
      "tree": "c861296636c59f82da4a8b32d2061be5dbc5a4d3",
      "parents": [
        "8e7d0cbb8a75d23b120e3ffbcafeb1158d048e29",
        "766e74f58312af149219473a691c6f2d9bcca428"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 12:17:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 12 12:17:24 2018 +0000"
      },
      "message": "Merge \"Cleanup the cpp-define-generator definitions.\""
    },
    {
      "commit": "766e74f58312af149219473a691c6f2d9bcca428",
      "tree": "4c216f5ebd128075f20d0857afb383d31da20c5a",
      "parents": [
        "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 02 17:12:24 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 03:22:29 2018 +0100"
      },
      "message": "Cleanup the cpp-define-generator definitions.\n\nTest: test-art-host-gtest-arch_test\nChange-Id: Ifda7a51d19156b1eb62bc39b16ec559d609744e5\n"
    },
    {
      "commit": "0aa7a5a6a7bc350b79351f52e26c97747e927acf",
      "tree": "a583889668d9703d16d37586d56421bd27c62661",
      "parents": [
        "e12575640dca5118bf96245f373acda276c22178"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 10 15:58:14 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 11 16:41:54 2018 -0700"
      },
      "message": "Revert^4 \"JVMTI PopFrame support\"\n\nThis reverts commit 202b617acf477e8e8e11915f467120a0bd518e74.\nThis unreverts commit 202b617acf.\nThis unreverts commit 88a2a9d7a1.\n\nThere were several bugs with the implementation of pop-frame related\nto interactions between the jit, exception handling, class-loading,\nand deoptimization.\n\n- We were instrumenting the target thread stack in cases where it was\n  unnecessary which caused the exception handler to incorrectly\n  determine that a method was not deoptimizable. This caused the\n  pop-frame to be ignored.\n\n- We were incorrectly sending ExceptionCatch events if an exception\n  suppressed by pop-frame would have been caught in the current frame.\n\n- We were allowing pop-frame to be used on threads suspended in the\n  ClassLoad or ClassPrepare events despite having surprising semantics\n  in that situation (see b/117615146).\n\nNeeded to modify test 1953 slightly for inclusion in CTS. I needed to\nmake the CTS entrypoint not run the class-load tests (since the cts\nconfiguration means the classes are loaded by the verifier and not the\ninterpreter). I updated the expected.txt and check script to reflect\nthis.\n\nReason for revert: Fixed issue causing Exception events to sometimes\n                   eat PopFrame and other issues.\n\nTest: ./test.py --host\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\n\nBug: 73255278\nBug: 111357976\nBug: 117533193\nBug: 117615146\n\nChange-Id: I655c4fe769938cf41d7589f931d6710cf2001506\n"
    },
    {
      "commit": "202b617acf477e8e8e11915f467120a0bd518e74",
      "tree": "4d1124b540984f970acaf494f4fd85cc347fbd57",
      "parents": [
        "1c7b1fcf0ff29d83d13d38d0451a54474ccf5964"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 10 07:47:58 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 10 07:47:58 2018 +0000"
      },
      "message": "Revert \"Revert^2 \"JVMTI PopFrame support\"\"\n\nThis reverts commit 1c7b1fcf0ff29d83d13d38d0451a54474ccf5964.\n\nBug: 73255278\nBug: 111357976\nbug: 117533193\n\nReason for revert: Test failures\n\nChange-Id: I9da863fd95264007c4efeb85539e704e83499dcf\n"
    },
    {
      "commit": "1c7b1fcf0ff29d83d13d38d0451a54474ccf5964",
      "tree": "b978817acd252f10bd4648d3582ac9459fc9a0f4",
      "parents": [
        "59b950f53152c169464ba8c63d44102eeba1e594"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 05 23:42:12 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 08 13:18:35 2018 -0700"
      },
      "message": "Revert^2 \"JVMTI PopFrame support\"\n\nThis reverts commit f67d0cbf2743b29aa6e1be7ae2f71762b8762785.\n\nRedefine-stress causes classes to be loaded at slightly different\nplaces due to the deep verification needed to redefine a class. This\nwould cause the parts of tests 1953 and 1954 to fail due to classes\nloading at unexpected times. We changed the test to skip these\ntest-cases when they cannot be correctly executed.\n\nReason for revert: Fixed issue causing tests to fail under\n                   redefine-stress\nTest: ./test.py --host\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\nTest: ./test/testrunner/testrunner.py --host --redefine-stress\nBug: 73255278\nBug: 111357976\nChange-Id: I46fb4aed878bcc9398f2b73ad5040d7c97aec3ef\n"
    },
    {
      "commit": "068a9bec8d637ce907f6c2829b772a99cae60611",
      "tree": "f099925c0269895935c9eea9a0caca8e8f801dce",
      "parents": [
        "bc550bbbf2fcd82b5b888683a4e3708a26d0efe6",
        "f67d0cbf2743b29aa6e1be7ae2f71762b8762785"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 05 23:41:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 05 23:41:16 2018 +0000"
      },
      "message": "Merge \"Revert \"JVMTI PopFrame support\"\""
    },
    {
      "commit": "f67d0cbf2743b29aa6e1be7ae2f71762b8762785",
      "tree": "b0b1b8a1908541791bfeb18c1117482d559ded38",
      "parents": [
        "88a2a9d7a14b67e10525d93b0ee57d9dd6bc345a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 05 23:39:54 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 05 23:40:30 2018 +0000"
      },
      "message": "Revert \"JVMTI PopFrame support\"\n\nThis reverts commit 88a2a9d7a14b67e10525d93b0ee57d9dd6bc345a.\n\nReason for revert: Fails class-load/prepare tests with jit-at-first-use.\nBug: 73255278\nBug: 111357976\nTest: None\nChange-Id: Id8dea6dcf124d56e3a8dfa19e6ed39cc70370c34\n"
    },
    {
      "commit": "dd0f77c4006544a58a82cb90088ee3d8dedb86e1",
      "tree": "9203806e4016928577872e5c1401b876a5d519d7",
      "parents": [
        "c6adcbdb278aa2e235c39e69e7b5421ad560d9f4",
        "88a2a9d7a14b67e10525d93b0ee57d9dd6bc345a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 05 17:58:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 05 17:58:45 2018 +0000"
      },
      "message": "Merge \"JVMTI PopFrame support\""
    },
    {
      "commit": "88a2a9d7a14b67e10525d93b0ee57d9dd6bc345a",
      "tree": "a19af813a97be817a76072534139a77b16f3ad87",
      "parents": [
        "fc7d33fc052d993eaa205337e6a805022d2cd822"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 14 14:44:29 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 04 11:04:49 2018 -0700"
      },
      "message": "JVMTI PopFrame support\n\nImplement support for the JVMTI can_pop_frames capability. This works\nby marking shadow-frames with a bit that forces it to be popped or an\ninstruction to be retried. When a PopFrame is requested the plugin\nwill deoptimize the targeted thread and force the interpreter to deal\nwith the frame pop. If the can_pop_frames capability is enabled the\nruntime will be forced to handle all exceptions through the\ninterpreter. This is required to support PopFrame during some\nexception events.\n\nTest: ./test.py --host\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\nBug: 73255278\nBug: 111357976\nChange-Id: I62d6b1f4ff387c794ba45093c3d6773aaf642067\n"
    },
    {
      "commit": "9ec8559bc2e18075cdcd9a2f09206b698d3c1993",
      "tree": "9b323f5532ff8d3cf6e10b7816c585e831cdb0d9",
      "parents": [
        "06cff4c9c057c5c702db87f5f28b211ec03713fb",
        "a497a39fe8830fe7b1c1c23b413753fe4e12923b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 03 09:28:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 03 09:28:37 2018 +0000"
      },
      "message": "Merge \"Remove patchoat.\""
    },
    {
      "commit": "a497a39fe8830fe7b1c1c23b413753fe4e12923b",
      "tree": "c1f02f404feefb94fa105a563f0e6c1146ab22b8",
      "parents": [
        "d6266f3292eab5b043262c6366ed6b8131e152c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 26 10:52:50 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 02 08:54:11 2018 +0100"
      },
      "message": "Remove patchoat.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nBug: 77856493\nChange-Id: I6686ce9d23e02aa8b8ef4081b302dbd860d07718\n"
    },
    {
      "commit": "e9f61035e7077032a17d7d0e9035b6ef3995273f",
      "tree": "e24de0b760ef3848c8d405b4b7fec5a8b630778c",
      "parents": [
        "bb68fda18ef3d7ea183a322831a5afd20b6a8bff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Sep 24 16:04:51 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 01 15:34:02 2018 -0700"
      },
      "message": "Prevent the JIT from loading classes in debuggable mode\n\nIn debuggable mode the timing and placement of class loads is\nobservable. This causes deopts to be placed in situations where a\nclass would be loaded by the JIT.\n\nThis has negligible impact on performance of compiled code, causing\nonly a handful of classes to be not loaded.\n\nFor example with the it.mvilla.android.fenix2 application of the\n~13000 classes loaded the jit was responsible for 19 of them.\n\nSince the jit is only responsible for a small number of class loads\nand for the class not to have been loaded by the interpreter the path\nmust be cold anyway there is no performance impact on standard paths.\n\nTest: ./test.py --host\nTest: ./test/testrunner/testrunner.py --with-agent\u003dlibjitloadd.so\u003dfatal --host\nTest: Attach libjitload.so to running processes and examine jit-load\n      counts.\n\nBug: 70838465\nBug: 73255278\nBug: 112074977\nBug: 116517081\n\nChange-Id: I030bc8116345af506e83ba78427a7fbda7a7b386\n"
    },
    {
      "commit": "4df2d8041f5dcc7af8c3b3b60b0ea87a1e0d3b94",
      "tree": "0273072a2b65d6c0cf692a3e7f8eab9814d9d23d",
      "parents": [
        "233b572a940431a94a1790750afdceab2d6f4fde"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 27 16:42:44 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 28 09:12:06 2018 +0100"
      },
      "message": "Revert^2 \"Load boot image at a random address.\"\n\nThis reverts commit f3d077373536c54824e4449759dff2f18369eab3.\n\nFixed Heap constructor to reserve extra space for GSS.\n\nChange-Id: I6a65be35f4aa183304db5491da4a4810d8e3b266\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --relocate --no-relocate\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing --relocate --no-relocate\nTest: art/test/testrunner/run_build_test_target.py -j48 art-gtest-gss-gc-tlab\nBug: 77856493\n"
    },
    {
      "commit": "f3d077373536c54824e4449759dff2f18369eab3",
      "tree": "e00d19a342ff429fc514bf70bf52ff005a00911c",
      "parents": [
        "5ad79d85d77a42456728897ac3e2e7d4530e618e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 27 16:24:17 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 27 16:24:17 2018 +0000"
      },
      "message": "Revert \"Load boot image at a random address.\"\n\nThis reverts commit 5ad79d85d77a42456728897ac3e2e7d4530e618e.\n\nReason for revert: Breaks GSS garbage collection config.\n\nBug: 77856493\nChange-Id: Ifa39966ac2470154f8ba093de4804689d545219b\n"
    },
    {
      "commit": "5ad79d85d77a42456728897ac3e2e7d4530e618e",
      "tree": "ff70d1f12904c718f2f3f721d3846f4305eae53d",
      "parents": [
        "5d7015cd64085068b1685d44339b4b705ef3f065"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 03 09:54:09 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 26 13:08:36 2018 +0100"
      },
      "message": "Load boot image at a random address.\n\nAnd perform in-place fixup of references and pointers. This\ndirties all the boot image memory loaded by zygote, so there\nshall be no \"shared clean\" boot image pages anymore, these\nshall change to \"shared dirty\". However, as we\u0027re using a\nprofile-based boot image, these pages are presumably used\noften enough and unlikely to be paged out anyway.\n\nThe in-place fixup takes around 60-120ms when starting the\nzygote on aosp_taimen-userdebug. However, an experiment with\nMAP_POPULATE pushes the raw fixup down to around 12-15ms.\nIf we used compressed images, this would be the actual time\nfor fixup as the data would be already present in memory.\nIf we keep using uncompressed images, we shall need to tune\nthe loading with MAP_POPULATE or MADV_WILLNEED.\n\nThe -Xrelocate/-Xno-relocate option is re-interpreted from\n\"use patchoat if needed\" to \"relocate the boot image in\nmemory if possible\". We do not allow relocation for the AOT\ncompilation to speed up dex2oat execution and help producing\ndeterministic output.\n\nThe patchoat tool shall be removed in a follow-up CL.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --relocate --no-relocate\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing --relocate --no-relocate\nBug: 77856493\nChange-Id: I2db1fabefb5d4b85c798cd51e04c78cb232bff4a\n"
    },
    {
      "commit": "3d8a78a79aaa47be68162cb3e3fb2544f9b624a3",
      "tree": "0f9790f629c798f5c371e75ae20af60fa39a3203",
      "parents": [
        "c497fca9aa25a331af6428aa0fb6b083c6292089"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 29 21:10:16 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 30 13:37:02 2018 +0100"
      },
      "message": "Revert \"Revert \"Remove OatFileAssistant::MakeUpToDate and friends.\"\"\n\nThis reverts commit baf3761013a30b8c5dc1d6179cddaeee0a764311.\n\nAlso remove the now deprecated --{no-}dex2oat option.\n\nChange-Id: I502c7011877f43f315abffa9b7d482ef13857125\nbug: 111174995\nbug: 111342996\n"
    },
    {
      "commit": "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403",
      "tree": "0fbce767bc383358cf4cd65aafc74140e1850982",
      "parents": [
        "19379b58bd433da91230e4fe6cd96e7416d16adc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 16:58:47 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:06:07 2018 +0100"
      },
      "message": "Use \u0027final\u0027 and \u0027override\u0027 specifiers directly in ART.\n\nRemove all uses of macros \u0027FINAL\u0027 and \u0027OVERRIDE\u0027 and replace them with\n\u0027final\u0027 and \u0027override\u0027 specifiers. Remove all definitions of these\nmacros as well, which were located in these files:\n- libartbase/base/macros.h\n- test/913-heaps/heaps.cc\n- test/ti-agent/ti_macros.h\n\nART is now using C++14; the \u0027final\u0027 and \u0027override\u0027 specifiers have\nbeen introduced in C++11.\n\nTest: mmma art\nChange-Id: I256c7758155a71a2940ef2574925a44076feeebf\n"
    },
    {
      "commit": "f6985bd84b27b25e2c2ae1b865a4f28a0ccd578b",
      "tree": "5ec94a773e2c7e19842b1f2de02baf4343aff6c9",
      "parents": [
        "19759b28bc9dad1581c207d76227eb74fc8eebcb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:02:28 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:40:56 2018 +0100"
      },
      "message": "Add an overload for MemMap::MapAnonymous().\n\nAdd an overload that does not take `reuse` or `use_ashmem`\nparameters but uses default values (`reuse \u003d false` and\n`use_ashmem \u003d true`) to simplify callers.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Iaa44f770dee7e043c3a1d6867dfb0416dec83b25\n"
    },
    {
      "commit": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "0b0ffc1429fde6fbf9bac20b8582e71ff1569451",
      "tree": "8da642e25c1e0dce946290389a9860092da184d1",
      "parents": [
        "72fb8639a61e100dcc39645c35a5c3e394ab0eba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 01 14:41:27 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 01 14:58:21 2018 -0700"
      },
      "message": "ART: Add parameter for verifier timing log threshold\n\nMake the old 100ms timing threshold configurable.\n\nBug: 111857793\nTest: m test-art-host\nTest: manual\nChange-Id: I6c3d0c05acbe9d35d71999522077d5768c4e6c20\n"
    },
    {
      "commit": "b2ab807bd1feb25d04ad5bdcb336c281a6ce88ff",
      "tree": "2ed74172c0a4e8dbcb72c575f0e88c597d357f6b",
      "parents": [
        "4e2000ac8f444f92df6633b57fa3e69203f4c3b7",
        "dcfcce4241fc706fd249bb3fec67f8a1dc434af6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 08:30:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 08:30:08 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Delay init of classes of pre-allocated exceptions.\"\""
    },
    {
      "commit": "dcfcce4241fc706fd249bb3fec67f8a1dc434af6",
      "tree": "7f9e189a1654e54849843fd758881b9fae23d8e7",
      "parents": [
        "639f5150805006a2c3a07daa804abcdba0bc3ece"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 10:00:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 13:20:05 2018 +0100"
      },
      "message": "Revert^2 \"Delay init of classes of pre-allocated exceptions.\"\n\nThis reverts commit 29cf32bb64dc61c4f755661939630775bd36419d.\n\nFixed heap-poisoning/gcstress tests by calling the Alloc\u003c\u003e()\nof the exception object with kInstrumented\u003dtrue.\n\nChange-Id: I209ab4f020e9c6fb67319fddde69ed87e3653223\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: run_build_test_target.py art-gtest-heap-poisoning\nTest: run_build_test_target.py art-interpreter-gcstress\nBug: 109925024\n"
    },
    {
      "commit": "b40d361019897e8b8484b772ccc0be433abafb5f",
      "tree": "cfb4498ee5757be7cec06f8e4a866e7faabfadba",
      "parents": [
        "a98d9e76ed2486db9a7490a6e421a509ab2f6e2d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 15:49:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 15:49:42 2018 -0700"
      },
      "message": "ART: Finish old move of OatDexFile\n\nThe class has been made standalone so it can be forward-declared,\nbut not all nested references had been updated.\n\nTest: mmma art\nChange-Id: Idc5f0af24af17dcae286dee290f729ba61693a11\n"
    },
    {
      "commit": "29cf32bb64dc61c4f755661939630775bd36419d",
      "tree": "fbba0dca090e6ca590c3ce5dfdf3c369c3483446",
      "parents": [
        "cd5c181baa6f919c1156a7b640b99056baf124d5"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Jun 26 17:43:05 2018 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Jun 26 17:43:05 2018 +0000"
      },
      "message": "Revert \"Delay init of classes of pre-allocated exceptions.\"\n\nThis reverts commit cd5c181baa6f919c1156a7b640b99056baf124d5.\n\nReason for revert: To fix build breakage\n\nChange-Id: I4ee1a28d3aeb630975ea60ae5606fc92bc5c4652\n"
    }
  ],
  "next": "cd5c181baa6f919c1156a7b640b99056baf124d5"
}
