)]}'
{
  "log": [
    {
      "commit": "51d80ccca5eb2ea0eef0de836dcc03e0545f63db",
      "tree": "14ff2bf5b9a9ca86d8a8d6f736cf27d8a1d47554",
      "parents": [
        "19df565ffcb30cb7b5217f074771078f0bb6cc1c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:05:13 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 22 16:04:07 2017 -0700"
      },
      "message": "ART: Refactor abort code\n\nRemove Runtime::Aborter and let Runtime::Abort set the abort message\non target.\n\nThis works around a missing tail-call optimization that leads to a\nsuperfluous frame on the call-stack when aborting.\n\nPartially reverts commit 3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0.\n\nBug: 62810360\nTest: m test-art-host\nTest: Manual inspection of abort dump\nChange-Id: Ie4efc8bbdc8b665b23081b37a11921fe26b182b4\n"
    },
    {
      "commit": "19df565ffcb30cb7b5217f074771078f0bb6cc1c",
      "tree": "dd9f3283fb8e61f8cbe3d9e60d45de354eaa2330",
      "parents": [
        "34bf6221dea0a1d81fc271b9cb8b7cfae18c41df",
        "f70fe3d0b0b29c955a4f7310beae1cfb926ca5c7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 22 20:27:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 22 20:27:34 2017 +0000"
      },
      "message": "Merge \"Add dex2oat support for profile based image creation\""
    },
    {
      "commit": "34bf6221dea0a1d81fc271b9cb8b7cfae18c41df",
      "tree": "a080ce5e1b3acf6e8f957d48887bb6690d8acc8a",
      "parents": [
        "4040a40ba16c4a4f948dcbc6c15e6f2eab6f041d",
        "27aaf64499af34261ffd00de8e3920fe311642f0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 22 20:26:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 22 20:26:03 2017 +0000"
      },
      "message": "Merge changes Ib2146ee7,I65f724be\n\n* changes:\n  ART: Add slow-debug test in 004-JniTest\n  ART: Add slow-debug test in CommonRuntimeTest\n"
    },
    {
      "commit": "bdd03448c19d7a50e75571c92050d5ba6f1fb4b5",
      "tree": "7bffae8c836c6f027465d4285ff150f542155eba",
      "parents": [
        "3f8d2d88eb90074ab83953394ddf754101d9cf07",
        "28c4a233681040de4b2785ab5beef0a6d150e46a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 22 20:02:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 22 20:02:59 2017 +0000"
      },
      "message": "Merge changes Ia0c5e920,I71e957db\n\n* changes:\n  ART: Fix RequestSynchronousCheckpoint\n  ART: Use ThreadList RunCheckpoint for GetAllStackTraces\n"
    },
    {
      "commit": "f70fe3d0b0b29c955a4f7310beae1cfb926ca5c7",
      "tree": "d69a44ce49c1745c2c2e08680915c7a1ce587693",
      "parents": [
        "7888b59b4542e15dd061047e4cb34f795cc2354c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 21 15:24:02 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 22 11:11:50 2017 -0700"
      },
      "message": "Add dex2oat support for profile based image creation\n\nAllow creating a boot image with only a profile without requiring\nany of --compiled-classes, --compiled-methods, or --image-classes.\n\nTo do so, you need to pass --profile-file and\n--compiler-filter\u003dspeed-profile.\n\nAdded a test dex2oat_image_test to verify behavior. This test covers:\n--compiled-classes\n--compiled-methods\n--image-classes\n--profile-file\n\nTest: test-art-host-gtest-dex2oat_image_test\n\nBug: 37966211\n\nChange-Id: I36d41b1c6e6560e6b3494b1df7024a4450ed0c0e\n"
    },
    {
      "commit": "46c4c850944dc96fad6227a7ad9081a48fc3d965",
      "tree": "f8cd19d6c4c0874203c91448d5fbed5248dc0e6c",
      "parents": [
        "5154e2a89ab0a6e3a34ffcb315d65c3e12ed15e3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 19:49:08 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 22 08:01:15 2017 -0700"
      },
      "message": "ART: Add slow-debug test in CommonRuntimeTest\n\nEnsure that gtests run with slow flags enabled.\n\nBug: 35644369\nTest: m test-art-host\nChange-Id: I65f724befe8ccc87d9376bada6655998263327be\n"
    },
    {
      "commit": "69489fad1e34c005fbe110bfae2a3c6bff879d4e",
      "tree": "23c50305c52cf076cedd3bfd496a2adf0d1e46b3",
      "parents": [
        "8979f71079ec18fa8d3c0915549ec03ee1fbadf5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 18:03:25 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:30:59 2017 -0700"
      },
      "message": "ART: Fix old warnings\n\nFix Wconstant-conversion warnings.\n\nPartially reverts commit df53be273509dd43725870fb20a2c7d71f7fbfd3.\n\nBug: 28149048\nBug: 29823425\nTest: m\nTest: m test-art-host\nChange-Id: Ib377150690c0f2c2142e4b91f2144e2bcaa020ef\n"
    },
    {
      "commit": "28c4a233681040de4b2785ab5beef0a6d150e46a",
      "tree": "c05b8402deb757aaabc989ddc8fd3c0a051529cd",
      "parents": [
        "f1221a1f39987b94a54dc57b824fcf360c890ed0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:21:31 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:24:22 2017 -0700"
      },
      "message": "ART: Fix RequestSynchronousCheckpoint\n\nFix the known races in the code by requiring more locks on entry.\nThis helps ensure there is no time in the caller where the thread\ncan die while requesting the checkpoint.\n\nFix up GetStackTrace, GetFrameCount and GetFrameLocation.\n\nBug: 62353392\nTest: m test-art-host\nTest: art/test/testrunner/testrunner.py -b --host -t 911\nChange-Id: Ia0c5e920599b58098dc4b3a3d09c5284045f2947\n"
    },
    {
      "commit": "f1221a1f39987b94a54dc57b824fcf360c890ed0",
      "tree": "f08bfd4669898b540ac76f115c23f5eff037f91b",
      "parents": [
        "8979f71079ec18fa8d3c0915549ec03ee1fbadf5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:20:47 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:20:47 2017 -0700"
      },
      "message": "ART: Use ThreadList RunCheckpoint for GetAllStackTraces\n\nMove to using the ThreadList code to avoid races. The tradeoff is a more\ncomplicated infrastructure to collect and store the traces.\n\nBug: 62353392\nTest: m test-art-host\nTest: art/test/testrunner/testrunner.py -b --host -t 911\nChange-Id: I71e957dbfbd619f6cfa0cdd1e6cb894e25cf5483\n"
    },
    {
      "commit": "8979f71079ec18fa8d3c0915549ec03ee1fbadf5",
      "tree": "13293a2a01c16cf084fdc0ac605940768c708730",
      "parents": [
        "4aeed04c082c86ff499418c4f1aaf72fbfe5e958",
        "71fa64f4a1cf113b0d2ec00d05a168de07302032"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 22 03:56:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 22 03:56:41 2017 +0000"
      },
      "message": "Merge \"Bump vdex version to regenerate vdex files\""
    },
    {
      "commit": "aea05c17f8c12ac7032e252f997a4c61c071e2d6",
      "tree": "4b6a33b180103e1b8ee36099ed189224f7b2fb6c",
      "parents": [
        "1c5b42f00933b8f28b447f039fb93a7d9a9db06f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 19 08:45:02 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 12:55:47 2017 -0700"
      },
      "message": "ART: Move debug-checks to runtime-debug-flags\n\nCurrent slow checks:\n* Class status checking in ArtMethod\n* Read barrier invariant checking\n\nBug: 35644369\nTest: m test-art-host\nChange-Id: I66138a9accc601fa0fa675cf600412ad3629d28f\n"
    },
    {
      "commit": "1c5b42f00933b8f28b447f039fb93a7d9a9db06f",
      "tree": "ac46a2fb5bc0a246222a7b2d5e6c2602099b1897",
      "parents": [
        "b96ed2c271a56fb8be0c8f30231710095e66a201"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 15 18:20:45 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 12:52:47 2017 -0700"
      },
      "message": "ART: Add support for runtime debug checks\n\nAdd support for runtime-switchable debug flags. These flags are only\nenabled in debug mode, and a constexpr false in release mode. This\nallows to distinguish fast from slow checks, for example.\n\nTo simplify usage, two macros should be used. DECLARE_RUNTIME_DEBUG_FLAG\ndefines a static class member or constexpr as the flag. DEFINE_RUNTIME_DEBUG_FLAG\ndefines the static storage and registers it, if needed. See the\ndocumentation in logging.h.\n\nAs is, runtime checks are disabled by default. Pass -XX:SlowDebug\u003dtrue\nto enable them on startup.\n\nAdd logging_test. Fix up tests and scripts to enable slow debug checks.\n\nBug: 35644369\nTest: m test-art-host\nChange-Id: Icc1cb0bb921d863514c55abef794c5c96f8af801\n"
    },
    {
      "commit": "71fa64f4a1cf113b0d2ec00d05a168de07302032",
      "tree": "375c13c5fe3b23797adf9fd45a8b91fb96748c0e",
      "parents": [
        "c18f3d08f7b1a75d578bd0a896ded542c48740a8"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Jun 21 10:22:15 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Jun 21 12:10:31 2017 -0700"
      },
      "message": "Bump vdex version to regenerate vdex files\n\nhttps://googleplex-android-review.git.corp.google.com/#/c/2344736/\nfixed the issue for corrupted vdex files, however, we could still be\nusing the same corrupted vdex files due to the same vdex version.\n\nTest: make\nBug: 62515426\nChange-Id: Ieaf9b7a07eefaf42810861623d2327a2a38cb8f6\n"
    },
    {
      "commit": "c18f3d08f7b1a75d578bd0a896ded542c48740a8",
      "tree": "dc7b3763f045dc5c3f62699c96f6953433a5c7a6",
      "parents": [
        "ce7a8b4be5090628dd7901724439cf0bdca57976",
        "e46f3a8399fec0f2cbb6d730f4f8316c37d7f3c5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 21 01:42:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 21 01:42:25 2017 +0000"
      },
      "message": "Merge \"Address some review comments for aog/415919\""
    },
    {
      "commit": "e46f3a8399fec0f2cbb6d730f4f8316c37d7f3c5",
      "tree": "b23f2da67063bee35ae64032f4d0b389a22e7adf",
      "parents": [
        "e882b6dc06804c08206a9fd027a7f67705941f48"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 19 19:54:12 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 20 16:21:31 2017 -0700"
      },
      "message": "Address some review comments for aog/415919\n\nTest: test-art-host\nBug: 62040831\nChange-Id: I9d8c359ab3a1ff090fe664bbb798a215a3d9eb52\n"
    },
    {
      "commit": "6fa7b81b09d5f1c68cec074cdf56dbc007e16baa",
      "tree": "5943d81dcc452c705e2b69ad378b9d061b504513",
      "parents": [
        "18b4ed19eb7970b9dfcc3246562c6fabe57176ee"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 09:04:29 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 20 09:05:14 2017 -0700"
      },
      "message": "Add GetSourceFile and GetSourceDebugExt JVMTI functions\n\nAlso add associated capabilities.\n\nTest: ./test.py --host -j40\nBug: 62821960\n\nChange-Id: Icc534b2789287fc9f0daddb747c0c0fa81a7728b\n"
    },
    {
      "commit": "18b4ed19eb7970b9dfcc3246562c6fabe57176ee",
      "tree": "c121c2eaa06391710236ce1ec7dce54d1e2306e2",
      "parents": [
        "89af4771a6b5bfe5283c32337cb9e33c98323e33",
        "43e935dfd2d16c6a1a2d120ca6b99ffabd064239"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 20 15:47:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 20 15:47:38 2017 +0000"
      },
      "message": "Merge changes from topic \u0027jvmti-field-cbs\u0027\n\n* changes:\n  Add field-access/modification to ti-stress.\n  Add tests for field access and modify JVMTI callbacks\n  Add field access \u0026 modify JVMTI callbacks\n"
    },
    {
      "commit": "36a296ff674e0aea16b29db965f84f81866b1375",
      "tree": "9d940463852089016a0d0932368923d04da2c3fe",
      "parents": [
        "77c7d1093281bec76d3055541fe41145cdc5f807"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 13 14:11:11 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 19 16:21:58 2017 -0700"
      },
      "message": "ART: Refactor stack.h\n\nFactor out LockCountData, ShadowFrame and JavaFrameRootInfo and leave\nstack.h for the StackVisitor. Move single-use function to user to remove\nDexFile dependency.\n\nTest: m test-art-host\nChange-Id: I53d2880917bdf6782856fd2b16f38a0293f3aefc\n"
    },
    {
      "commit": "77c7d1093281bec76d3055541fe41145cdc5f807",
      "tree": "869c6ae1a267c24638d768cd4609685d3e15bbc5",
      "parents": [
        "1c15526f612e43e2a65ba12f69f742a66e4bce10",
        "e17cf243978ca7f5356e746ee460f0fcf04e04a6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 19 20:10:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 19 20:10:55 2017 +0000"
      },
      "message": "Merge \"Add field/method skipping helper functions to DexFile\""
    },
    {
      "commit": "e17cf243978ca7f5356e746ee460f0fcf04e04a6",
      "tree": "e8ad423bf1dee5756fec451ba22db749ed4f5472",
      "parents": [
        "2bc159ebd1115f71d80639e47fc38663aa84ba4a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 19 11:05:51 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 19 11:11:12 2017 -0700"
      },
      "message": "Add field/method skipping helper functions to DexFile\n\nSpecifically added SkipStaticFields, SkipInstanceFields,\nSkipAllFields, SkipStaticMethods, and SkipVirtualMethods.\n\nAlso applied the helpers to the code base.\n\nTest: test-art-host\nChange-Id: Idda77f9a6e2564c2e588d2bbe11cc320063fdb32\n"
    },
    {
      "commit": "084fa370a14edc43dcf8ff4e454e04c863e1a130",
      "tree": "d616c178536092d546fcfeb10734df1a1d8bfcc1",
      "parents": [
        "8b0673f022711bc725b63517bf338447a00cb45c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 08:58:34 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 19 10:20:32 2017 -0700"
      },
      "message": "Add field access \u0026 modify JVMTI callbacks\n\nThis adds support for the FieldAccess and FieldModification callbacks\nin JVMTI and all other functions and behaviors associated with the\ncan_generate_field_modification_events and\ncan_generate_field_access_events capabilities.\n\nTests follow in the next CL.\n\nBug: 34409228\nTest: ./test.py --host -j40\n\nChange-Id: Id18fc53677cc1f96e1460c498ade7607219d5a79\n"
    },
    {
      "commit": "2ebc76e6655e5e74f66955937dcff7c8ed53cede",
      "tree": "d86ff2d53aec3687bb02ebe8a8845f31e4d8a0dc",
      "parents": [
        "8b0673f022711bc725b63517bf338447a00cb45c",
        "7c1be8ba84b81ad2edfb6461bb4e2f3073bbc553"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 16 23:03:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 16 23:03:09 2017 +0000"
      },
      "message": "Merge \"Layout code items of post startup methods\""
    },
    {
      "commit": "7c1be8ba84b81ad2edfb6461bb4e2f3073bbc553",
      "tree": "3da1fa92b59386134d0dae307ba21a21ee2f530d",
      "parents": [
        "2bc159ebd1115f71d80639e47fc38663aa84ba4a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 15 13:56:05 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 16 14:02:04 2017 -0700"
      },
      "message": "Layout code items of post startup methods\n\nLayout code items in the following manner:\n\u003chot\u003e\n\u003cstartup only\u003e\n\u003cother clinit\u003e\n\u003cexecuted\u003e\n\u003cnot executed\u003e\n\nFor basic use cases (write email, start navigation)\nMaps vdex PSS: 17464k -\u003e 16856k\nGmail vdex PSS: 4004k -\u003e 3820k\nNumbers are from marlin\n\nTest: test-art-host\nBug: 36457259\n\nChange-Id: Id7ae676b45d5ba4f5b4dabfdc954875756fd2bcb\n"
    },
    {
      "commit": "8b0673f022711bc725b63517bf338447a00cb45c",
      "tree": "16e40759a676d61554730c6830baa736ff6d83fe",
      "parents": [
        "8d80bba69c113cc53dd322aa6d4130e1a07db5a3",
        "e00ec30588a36eed90aa24eaca9dbc7520f17bf7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 16 20:34:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 16 20:34:30 2017 +0000"
      },
      "message": "Merge \"Make native field operations call instrumentation listeners.\""
    },
    {
      "commit": "e00ec30588a36eed90aa24eaca9dbc7520f17bf7",
      "tree": "c31d512d62ae2d33b3f57a6549b4c585e0235627",
      "parents": [
        "61944b0c756309a6cf4a3f03fe2aa515e3721621"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 08:56:43 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 11:22:26 2017 -0700"
      },
      "message": "Make native field operations call instrumentation listeners.\n\nPreviously native reads and writes of fields would not be reported to\ninstrumentation listeners.\n\nWe filter these events out from the debugger since currently the\ndebugger will deadlock if it tries to propagate them through JDWP.\n\nBug: 62712031\n\nTest: ./test.py --host --trace -j40\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost\nTest: Manual\nChange-Id: Ibc75248bdca06537d8b4ff7bb890546136ffa161\n"
    },
    {
      "commit": "72398650f2c6f1b148b3662ebb3c1660204cef12",
      "tree": "9e757909eceecba4d120cba591429998a9db3356",
      "parents": [
        "2dcfe269a6c863a91e614dd6134c995d6347fdf7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 09:08:12 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 09:37:32 2017 -0700"
      },
      "message": "Null check thread peers in JVMTI class callbacks\n\nEarly in startup it is possible that some callbacks will be called\nwith null thread arguments. We were failing DCHECKS by trying to add\nreferences to these null objects.\n\nTest: ./test.py --host -j40\nTest: ./test/run-test --host --jvmti-trace-stress 001-HelloWorld\nChange-Id: I2fdc454859ca5081b2db12643b4d24267035f7e8\n"
    },
    {
      "commit": "97176b0c1b6c7ad00df3172a6c981fe85f890187",
      "tree": "90a53b049eec0c993d46078e9d2af3c130b7aaad",
      "parents": [
        "5d3ae5b607c80c8df7e7b3d72bd3659f4c62a867",
        "9e1c45d0bfc2f75df24697d537b03dc1b3519e3f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 15 23:26:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 23:26:18 2017 +0000"
      },
      "message": "Merge \"Added scripts to analyze sanitizer poisoning\""
    },
    {
      "commit": "a5dcdf346158d47bfe80d8adb29b1b020cede286",
      "tree": "50e56b3445dc8e4724d6707ffecd23f9dae96e31",
      "parents": [
        "942c597b004aa328cf291a78392b405ef5d5f040",
        "bbe3a5efcdfb2fb15a4e5f724cc323ae0ada5111"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 15 20:21:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 20:21:24 2017 +0000"
      },
      "message": "Merge \"Refactor some profiling info functions\""
    },
    {
      "commit": "b9499f443369e7588fd0d53334d5d83207ca3253",
      "tree": "901799cb32c8b96d7a5eeb97b6cd307ef186b695",
      "parents": [
        "8302d76e45f121cc0d04ca1f6550043c98862471",
        "e4deaf3ccdfaf33f0b4526e9963612bfa2dc79e8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 15 20:12:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 20:12:10 2017 +0000"
      },
      "message": "Merge \"ART: JIT code cache allocation cleanup\""
    },
    {
      "commit": "8302d76e45f121cc0d04ca1f6550043c98862471",
      "tree": "b6ca9053f6438b4e177dbe0216bd2282069b999b",
      "parents": [
        "fa177ff4caf2244016f79dd081861ed5fbef65fe",
        "651ba599961ff0cdc36e83d3d58b1744d37ee9f7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 15 20:06:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 20:06:25 2017 +0000"
      },
      "message": "Merge \"ART: Split out PROT_EXEC from custom low-4GB allocator\""
    },
    {
      "commit": "bbe3a5efcdfb2fb15a4e5f724cc323ae0ada5111",
      "tree": "65fd149e1159674681d866e47e485d85b8464334",
      "parents": [
        "d58932f98a673c9d687863a7efafb2da168063a2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 13 16:36:17 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 15 11:45:06 2017 -0700"
      },
      "message": "Refactor some profiling info functions\n\nDeleted profile_compilation_info-inl.h\n\nAdded a new helper class MethodHotness to reduce the number of\nrequired getters for reading method hotness, startup, and post\nstartup booleans.\n\nTest: test-art-host\nBug: 62040831\n\nChange-Id: I799a38e2bea6177ba5816c54524f4ccacedba772\n"
    },
    {
      "commit": "9e1c45d0bfc2f75df24697d537b03dc1b3519e3f",
      "tree": "1761fda2126f01105edb9b92594661d2e899b62e",
      "parents": [
        "a7548fee6122f594c6669e1dcfd7b1637ef19a47"
      ],
      "author": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Tue Jun 13 08:56:51 2017 -0700"
      },
      "committer": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Thu Jun 15 10:41:43 2017 -0700"
      },
      "message": "Added scripts to analyze sanitizer poisoning\n\nScripts are meant to be used in conjunction with DexFileTrackingRegistrar.\nAfter poisoning certain sections of a dex file, the logcat will contain\ntraces in addition to information of dex files. This is used in order to\ncondense the large amount of information that is dumped into the logcat.\n\nBug: 37754950\nTest: art/tools/runtime_memusage/sanitizer_logcat_analysis.sh\n[LOGCAT_FILE]\n\nChange-Id: Ied28e09899ec097f09332784bf80481f9c7dcb3f\n"
    },
    {
      "commit": "aebfd208a5ca46833a110dfa392a0298b0347917",
      "tree": "fb80596b3e68d8b38e1a308027ce65f7dfa7c332",
      "parents": [
        "718ec6e04614a844e6383df95137629fb0698f5c",
        "9ac7749591c4341f5bf7d17af59d3aa6366487f1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 15 15:13:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 15:13:15 2017 +0000"
      },
      "message": "Merge \"Clean up ArraySlice\u003c\u003e.\""
    },
    {
      "commit": "1368312bb4772a1c505452f766fdaceef4c48f6e",
      "tree": "964d5140e6d0b2e9d60f01515840e4182b56544c",
      "parents": [
        "c348380cc2e5820231b50132683de8892b8d0fe9",
        "e1993c7d74fc60c468f55da78da490a5ce9c2f91"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 15 09:14:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 09:14:51 2017 +0000"
      },
      "message": "Merge \"Use ArrayRef\u003c\u003e instead of ArraySlice\u003c\u003e in JVMTI.\""
    },
    {
      "commit": "9ac7749591c4341f5bf7d17af59d3aa6366487f1",
      "tree": "509126cecfa61b338c6c13d554f9583b1e99cf36",
      "parents": [
        "e1993c7d74fc60c468f55da78da490a5ce9c2f91"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 14 18:07:03 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 15 10:11:26 2017 +0100"
      },
      "message": "Clean up ArraySlice\u003c\u003e.\n\nRemove constructors that take ranges (one of them created\nambiguity with the constructor taking just the length) and\nadd SubArray() to serve as a replacement API.\n\nRemove the AsRange() function as the translation to the\nIterationRange\u003c\u003e seems totally unnecessary, we can simply\nreturn ArraySlice\u003c\u003e from the functions that used it.\n\nRemove the At() function as the comparison with the\nstd::vector\u003c\u003e::at() is confusing given that we do not\nuse C++ exceptions.\n\nAdd some standard container API, i.e. nested types and\nmore functions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Ifcd39222cf8f36b7ebf8029398ed7fc67aafcaf0\n"
    },
    {
      "commit": "c348380cc2e5820231b50132683de8892b8d0fe9",
      "tree": "44e4291e96c03dba94001a1ad7a0d8bee43d4ae5",
      "parents": [
        "a8b125e0f69cbc14137a0058fd34eddd4f43668f",
        "a3d27ebd2802fd6031cc928a67752541775bf52b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Jun 15 08:48:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 08:48:57 2017 +0000"
      },
      "message": "Merge \"ScopedFlock: Refactor it to be a subclass of FdFile.\""
    },
    {
      "commit": "e4deaf3ccdfaf33f0b4526e9963612bfa2dc79e8",
      "tree": "6af8ed52f680e3f65ffed43d52353c34803b668a",
      "parents": [
        "651ba599961ff0cdc36e83d3d58b1744d37ee9f7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 09 15:27:15 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 14 14:44:53 2017 -0700"
      },
      "message": "ART: JIT code cache allocation cleanup\n\nRequest the data cache with kProtData instead of kProtAll. It isn\u0027t\nnecessary nor intended to be executable. The tail remap for the code\ncache will make all required parts executable, if possible.\n\nAlso use a unique_ptr to plug a leak on failure.\n\nBug: 36138508\nTest: m\nTest: m test-art-host\nTest: Test SANITIZE_LITE\u003dtrue build with wrap.system_server \u003d asanwrapper\nChange-Id: Id9e2e51bc8d7a29db99c406cd1e9ef6bbb8d444c\n"
    },
    {
      "commit": "651ba599961ff0cdc36e83d3d58b1744d37ee9f7",
      "tree": "f60270aff206747ba47688f359b265931697d706",
      "parents": [
        "4f647ebe819667658957c2c3b6bceec3b572e853"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 14 14:41:33 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 14 14:44:19 2017 -0700"
      },
      "message": "ART: Split out PROT_EXEC from custom low-4GB allocator\n\nTo address the known issue that denials for executable memory can\nlead to the custom low-4GB allocator being very slow, split the\nallocation into two parts. First allocate without PROT_EXEC, then\ntry to mprotect with the originally requested flags.\n\nBug: 36138508\nTest: m test-art-host\nTest: m SANITIZE_TARGET\u003daddress SANITIZE_LITE\u003dtrue ; asanwrapper for system_server\nChange-Id: Ic18621f5b5c619ea1a3ad861c1f764886dc6f2a2\n"
    },
    {
      "commit": "e1993c7d74fc60c468f55da78da490a5ce9c2f91",
      "tree": "e0dc2f1996313b8ead87263b8a3728b7d4ebcd34",
      "parents": [
        "fed9cb178be878f4e5ff862ac78ae2cf5ad305d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 14 17:01:38 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 14 17:02:49 2017 +0100"
      },
      "message": "Use ArrayRef\u003c\u003e instead of ArraySlice\u003c\u003e in JVMTI.\n\nAnd clean up ArrayRef\u003c\u003e a little bit.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: I4832006b991fc87b2baec9aa605ff70653b029b3\n"
    },
    {
      "commit": "25e4d1ea98fedebf49ceee40ea67ec93e2407c53",
      "tree": "a2bdff880ee5e85bd47c472a2603ddd596300bce",
      "parents": [
        "2ec2b28686876c1b9244ce9c1274be2cac8d928f"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Jun 14 13:47:44 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Jun 14 14:51:56 2017 +0200"
      },
      "message": "MIPS: Fix art_quick_instrumentation_entry/exit\n\nThis is a follow-up change for\nIab229353fae23c2ea27c2b698c831627a9f861b1.\n\nThis fixes following tests for both MIPS32 and MIPS64:\n  * 099-vmdebug\n  * 304-method-tracing\n  * 545-tracing-and-jit\n  * 570-checker-osr\n  * 597-deopt-new-string\n  * 802-deoptimization\n  * 988-method-trace\n  * 989-method-trace-throw\n\nTest: ./testrunner.py --optimizing --target in QEMU (MIPS64R6)\nTest: ./testrunner.py --optimizing --target on CI20 (MIPS32R2)\n\nChange-Id: I064588283b65971f07150eb30a1fcf90c765eb40\n"
    },
    {
      "commit": "1cfea7af6f38cd06393fed3e466701869ce8b2c3",
      "tree": "3e3b185eeb4ce0c6a2cc3184e0305f37151261c2",
      "parents": [
        "d38b67c9892b603f57a6b51a1b9d7f4e610158aa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 24 14:44:38 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 14 10:53:48 2017 +0100"
      },
      "message": "Code cleanup around vdex.\n\n1) Handle the vdex in dex2oat instead of compiler_driver\n2) CHECK instead of DCHECK that we don\u0027t dexlayout with vdex.\n\nTest: test.py\nChange-Id: Idf7be59bb25708181e391d17128480659ac697e5\n"
    },
    {
      "commit": "a3d27ebd2802fd6031cc928a67752541775bf52b",
      "tree": "96c4a460fbf81fd00b8c71063f5ef9ae3bc56eda",
      "parents": [
        "d38b67c9892b603f57a6b51a1b9d7f4e610158aa"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 11 13:50:59 2017 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jun 14 10:29:55 2017 +0100"
      },
      "message": "ScopedFlock: Refactor it to be a subclass of FdFile.\n\nMakes callers cleaner, since they only have to worry about\ndealing with regular File objects that they know will be locked\nfor the duration of their existence. Prevents issues and other\nclunky code relating to acquire\n\nTest: scoped_flock_test, test_art_host\nBug: 36369345\n\nChange-Id: I2c9644e448acde6ddac472d88108c7d9a4e1a892\n"
    },
    {
      "commit": "d38b67c9892b603f57a6b51a1b9d7f4e610158aa",
      "tree": "4bb95ce9f7733f8b9e54b6e80eaeb3751b4e78a8",
      "parents": [
        "af14a86fb40f83b3d76185dd8bd09c1e7c409d2f",
        "eced692a34d2cf63d584c703704592984cc50394"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 14 05:50:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 14 05:50:42 2017 +0000"
      },
      "message": "Merge \"ART: Add JIT cache race test\""
    },
    {
      "commit": "3d8c664add1121ee7502f20bea8f8703f642bdad",
      "tree": "35eb1051d23015144d894d77a5561ac8db4d3432",
      "parents": [
        "f79975cd6fde3ef533440f270a3f71429210af7b",
        "850a0fe2fc0dc1fdea40a6147762876547b3ebb3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 13 21:00:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 13 21:00:47 2017 +0000"
      },
      "message": "Merge \"ART: Add GetStackTrace fast-path\""
    },
    {
      "commit": "f79975cd6fde3ef533440f270a3f71429210af7b",
      "tree": "c8f1e41db9e721b027f26b952cdd4b93ca24027e",
      "parents": [
        "6aa23b555572903f2091918ebdcd7947101ddb46",
        "6db6b4d276435cd18a516c84c33e5b3351f5bd3b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 13 20:45:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 13 20:45:12 2017 +0000"
      },
      "message": "Merge \"ART: Refactor GetStackTraceVisitor\""
    },
    {
      "commit": "de944ae152a6dc6a3ce60196f40d86e89bad52e1",
      "tree": "92253467cfc490d97db116b5bd91ec73223917ac",
      "parents": [
        "19a4d0f01f850b86921e67b3f1d9834d5ce94ee3",
        "db40eac139e2bc2b7b450277f4ba63c131d30dbc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 13 20:02:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 13 20:02:10 2017 +0000"
      },
      "message": "Merge \"Address review comments for aog/411660\""
    },
    {
      "commit": "850a0fe2fc0dc1fdea40a6147762876547b3ebb3",
      "tree": "46a3026ea3a47681fc7a4ae5d9271577074b2ba8",
      "parents": [
        "6db6b4d276435cd18a516c84c33e5b3351f5bd3b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 12 18:37:19 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 13 11:35:45 2017 -0700"
      },
      "message": "ART: Add GetStackTrace fast-path\n\nAdd a fast-path closure that fills stack frames directly into the\nprovided buffer, avoiding an intermediate vector and its allocations,\nas well as a memcpy.\n\nThis only works when collecting stack frames from the top (start \u003e\u003d 0),\nwhich is a common case.\n\nBug: 62065987\nTest: m test-art-host\nChange-Id: I8f0d34b3d18f70f4699ed8bdec2c88ca4c96cd4f\n"
    },
    {
      "commit": "6db6b4d276435cd18a516c84c33e5b3351f5bd3b",
      "tree": "7c4607bf0916d9c583413bd24c508a383ad14a44",
      "parents": [
        "16d59b2b0ff202be99cbe24830e8a5080b774357"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 12 16:36:33 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 13 11:27:24 2017 -0700"
      },
      "message": "ART: Refactor GetStackTraceVisitor\n\nUse a template to collect the stack frames. In preparation for\na fast-path avoiding the vector.\n\nBug: 62065987\nTest: m test-art-host\nChange-Id: Ib41cd07c30607393f3be33563c2c4003f002ce5b\n"
    },
    {
      "commit": "885a7133472fd01321cbe545ace9c2acae543bf1",
      "tree": "f3bc66aaff2f38edc3673c3cfb4aba80f5e08242",
      "parents": [
        "16d59b2b0ff202be99cbe24830e8a5080b774357"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jun 10 14:35:11 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 12 22:45:58 2017 -0700"
      },
      "message": "Add support for profiling boot class path\n\nAdded a runtime option -Xps-profile-boot-class-path that makes the\nprofile saver take samples for the boot dex files. The motivation is\nto use this for improving boot image creation.\n\nAdded test case to test 595.\n\nTest: adb shell setprop dalvik.vm.extra-opts \"\u0027-Xusejit:false -Xint -Xps-profile-boot-class-path -verbose:profiler\u0027\"\nTest: Pull profile and look at output\nTest: test-art-host\nTest: test/run-test --host 595-profile-saving\n\nBug: 37966211\n\n(cherry picked from commit 08fee9c7db427e90dbe75692e6bc0242643cb3c5)\n\nChange-Id: Id95de103ed14841d9c209946ea7f1c4f6b5d23a5\n"
    },
    {
      "commit": "db40eac139e2bc2b7b450277f4ba63c131d30dbc",
      "tree": "e91b75a9fc69c28b06e91c9028d7fc29dcfaa1a0",
      "parents": [
        "16d59b2b0ff202be99cbe24830e8a5080b774357"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 09 18:34:11 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 12 18:10:35 2017 -0700"
      },
      "message": "Address review comments for aog/411660\n\nAdded test for bulk adding method apis.\n\nTest: test-art-host\n\nChange-Id: Ib5b8c73e572110bccbbab031c11f030c23545fba\n"
    },
    {
      "commit": "a7548fee6122f594c6669e1dcfd7b1637ef19a47",
      "tree": "cd5f8cbffa0fd8f7225ebfff04d322344b706ef4",
      "parents": [
        "bb5fd1bff12207489353e5f638e49637bbf4b619",
        "4f5e3cb690547c0f85c1e6117786048d0348d3c6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 12 22:22:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 12 22:22:52 2017 +0000"
      },
      "message": "Merge \"Add FirstPathFromRootSet and use it to debug reachability issues\""
    },
    {
      "commit": "4f5e3cb690547c0f85c1e6117786048d0348d3c6",
      "tree": "6e8ea7b16bce526e5b0bd3ad9fa7a6f408952a8a",
      "parents": [
        "f22f68efca28c2e165f6db485b24f9ee02caa78c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 12 13:10:01 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 12 13:32:43 2017 -0700"
      },
      "message": "Add FirstPathFromRootSet and use it to debug reachability issues\n\nSpecifically issues where classes aren\u0027t pruned in image writer.\n\nAdded test.\n\nTest: mm test-art-host-gtest-heap_verification_test -j32\n\nChange-Id: Iea87309aaddf9e28f1856698699a925fb6ab92a1\n"
    },
    {
      "commit": "07e6c2d8e259d8cbbd4ea7585f6270087cb74392",
      "tree": "f12eab6f050e9779a023617ee68d37ea20a35a93",
      "parents": [
        "f22f68efca28c2e165f6db485b24f9ee02caa78c",
        "2f470edaff2a5c55d657a43b54e5188ed2bf1227"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jun 12 20:12:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 12 20:12:41 2017 +0000"
      },
      "message": "Merge \"entrypoints: Remove DMBs from art_quick_alloc initialized variants.\""
    },
    {
      "commit": "d455b87f4805fcec6c78fbf9a48b0bf23bbc9467",
      "tree": "9d22ba4b91f3cf91c416d1310168932720508c0e",
      "parents": [
        "df2898236114f8fec51afe71a3b6f31868794e1b",
        "9877855b59abd42112fa799c143255d3f8d9da3d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 12 15:42:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 12 15:42:24 2017 +0000"
      },
      "message": "Merge \"x86/x86-64: Fix art_quick_instrumentation_exit CFI.\""
    },
    {
      "commit": "9877855b59abd42112fa799c143255d3f8d9da3d",
      "tree": "444a1080b52cf77926393515cbbc598e7a7b152f",
      "parents": [
        "fed9cb178be878f4e5ff862ac78ae2cf5ad305d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 12 14:04:52 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 12 14:07:10 2017 +0100"
      },
      "message": "x86/x86-64: Fix art_quick_instrumentation_exit CFI.\n\nTest: Rely on TreeHugger.\nBug: 62490325\nChange-Id: I1918cc21d67e61996224bec9a4ddf2e2098a649c\n"
    },
    {
      "commit": "c5dd99fd581a0c92802d707e3d2017ddd3fec72c",
      "tree": "ef4551ff3d887845cdccadc259437a1f2c41e507",
      "parents": [
        "237377b48fdba2c7025ce369ffeae1bde25f77f4"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Jun 12 13:46:18 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Jun 12 13:56:16 2017 +0200"
      },
      "message": "Fix mips64 build\n\nAdded missing include.\n\nTest: successful aosp_mips64-eng build\nChange-Id: I88ee9d9c6f8b159da4a1a4bb92c194d6355868ee\n"
    },
    {
      "commit": "fbb22de21c30b1233aa32b56b0c92b2bd0ec2b47",
      "tree": "c4dca0c88a5526fceb057e7255f614c1c8a9a2c0",
      "parents": [
        "f052aa7268f656f97099185ac6b51eeacd78a97d",
        "88f50b13aca3b29b4be144b2b8c14bc95506d240"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jun 10 13:24:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 10 13:24:48 2017 +0000"
      },
      "message": "Merge \"Don\u0027t reset to a level above warmup threshold.\""
    },
    {
      "commit": "f052aa7268f656f97099185ac6b51eeacd78a97d",
      "tree": "4c9512a31413af619e6d192672d141d5acc0de23",
      "parents": [
        "4e44dcc82997cd0471946bceabd5a8477bfff118",
        "273d11009876bca38065ace9a7743c7eceacbcce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 23:21:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 23:21:05 2017 +0000"
      },
      "message": "Merge \"Update startup compilation thresholds\""
    },
    {
      "commit": "4e44dcc82997cd0471946bceabd5a8477bfff118",
      "tree": "8effe3f25d49ff5860ae91453f8fc6cb07586e0d",
      "parents": [
        "9e20fd6376f846f474310b24525198c83ed7b660",
        "b8bff09cd5beb70b7598285ab4aea92115f0ade2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 23:06:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 23:06:36 2017 +0000"
      },
      "message": "Merge \"X86: Add sandybridge microarchitecture\""
    },
    {
      "commit": "9e20fd6376f846f474310b24525198c83ed7b660",
      "tree": "0ff27ddb84ce36080823c7a9658e848607159b24",
      "parents": [
        "13600e9cd7536b7cd8d93c32270f5f08076f5d6d",
        "b7edcda968bb0cbaa69a3ad387fcd3194f5612be"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 22:07:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 22:07:43 2017 +0000"
      },
      "message": "Merge \"Add method tracing JVMTI callbacks\""
    },
    {
      "commit": "273d11009876bca38065ace9a7743c7eceacbcce",
      "tree": "a2fedab1f90d9d605797d4050e40c6cda5e6d379",
      "parents": [
        "29365184fe2e4f3d32f56b32edec8d03852b9556"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 06 17:07:13 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 09 14:28:51 2017 -0700"
      },
      "message": "Update startup compilation thresholds\n\nThis change aims to compile less startup methods to save RAM and\nreduce code size. Numbers are from shortly after launching the apps.\n\nLeave cutoff as 1 for high end devices for now. We may want to\nrevisit that later.\n\nFor low ram devices, the cutoff is 256. This regresses startup time\nby 1% but saves more RAM. Results:\n(odex+vdex) PSS: -25% average\nodex size: -42% average\nvdex size unchanged\nApps: Gmail, Maps, YouTube, Search\n\nSpreadsheet at go/compilethreshold\n\nBug: 36457259\nTest: test-art-host\nChange-Id: I49d157df9379532d8d7a1ea1d844bb4beb195bb2\n"
    },
    {
      "commit": "a74c04b3c797265ab7923d3690da6166224f3e30",
      "tree": "3dd8a1d597bf73d0e5a32294e9fc9e84930d89d0",
      "parents": [
        "29365184fe2e4f3d32f56b32edec8d03852b9556",
        "b2d18fa4e33ca119654ced872c70fe198b0b2db5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 21:16:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 21:16:08 2017 +0000"
      },
      "message": "Merge \"ART: Clean up asm_support.h\""
    },
    {
      "commit": "29365184fe2e4f3d32f56b32edec8d03852b9556",
      "tree": "1785c1ed3f942a29a462f59238f8e8560f09ccab",
      "parents": [
        "cd0b9eed2220ab5367f941cd9238b8196806e79e",
        "8bdda5a106b256865ce39f4a843452f45ad97599"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 20:50:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 20:50:52 2017 +0000"
      },
      "message": "Merge \"ART: Update stl_util.h\""
    },
    {
      "commit": "b8bff09cd5beb70b7598285ab4aea92115f0ade2",
      "tree": "88174f6a00528b8911277563d6bba09c1c35c364",
      "parents": [
        "58794c5c23f46a7476a58e5a10dbeebb6321aa90"
      ],
      "author": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Fri Jun 09 12:33:04 2017 -0700"
      },
      "committer": {
        "name": "Luis Hector Chavez",
        "email": "lhchavez@google.com",
        "time": "Fri Jun 09 13:43:04 2017 -0700"
      },
      "message": "X86: Add sandybridge microarchitecture\n\nART was not aware of sandybridge CPU featureset, so it turned off all\nfeatures (ISA: X86 Feature string: -ssse3,-sse4.1,-sse4.2,-avx,-avx2,\n-popcnt). Meanwhile, the Android build does turn on the corresponding\ncompiler flags (ISA: X86 Feature string: ssse3,sse4.1,sse4.2,-avx,\n-avx2,popcnt). This change adds \"sandybridge\" to the relevant lists so\nit can detect the features correctly.\n\nBug: 62389235\nTest: Android runs on Chromebooks\nTest: m test-art-host-gtest-instruction_set_features_x86_test\n\n(cherry picked from commit 702e27249893104230f826b82b7a3723ec3b7240)\n\nChange-Id: Ie47aed190ac83b35b6d3994d703c463c9efd5e25\n"
    },
    {
      "commit": "faf8320e7b3a72d79876ff76d88a6b88740b8c02",
      "tree": "b46372ecb22f7c9f813a24f787788a4caead713e",
      "parents": [
        "58794c5c23f46a7476a58e5a10dbeebb6321aa90"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 08 10:35:20 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 09 11:45:10 2017 -0700"
      },
      "message": "Optimize FetchAndCacheResolvedClassesAndMethods\n\nMoved FetchAndCacheResolvedClassesAndMethods to use a newly added\nmemory efficient DexReferenceCollection. This reduces RAM by\n6+ bytes per sampled method during the process.\n\nChanged profile logic to use bulk adding for each dex file instead\nof looping through all of the ids and doing a string map comparison\nfor each one.\n\nAlso moved the vectors to use arena allocators to make sure the\npages get released after sampling is done.\n\nTime in FetchAndCacheResolvedClassesAndMethods for Maps goes from\n90.4ms to 47ms (average of 5 samples).\n\nThe motivation is to improve this call since it will be called more\noften for sampling post startup methods.\n\nTest: test-art-host\nTest: manually look at -verbose:profiler output\n\nBug: 36457259\n\nChange-Id: I3ed647ae15900c96d2180eb5c799f45393794dda\n"
    },
    {
      "commit": "b2d18fa4e33ca119654ced872c70fe198b0b2db5",
      "tree": "9f0e3ac72b9b7b08794e1ecf458620ba19437465",
      "parents": [
        "58794c5c23f46a7476a58e5a10dbeebb6321aa90"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 06 20:46:10 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 09 11:36:45 2017 -0700"
      },
      "message": "ART: Clean up asm_support.h\n\nThe includes are only ever really needed for tests. Factor out\ngeneration of the test function into asm_support_check.h\n\nFix up missing includes, mainly intern_table.h.\n\nTest: m\nTest: m test-art-host\nChange-Id: I435199e6211e368be0a06c80d8fa95b9593aca31\n"
    },
    {
      "commit": "8bdda5a106b256865ce39f4a843452f45ad97599",
      "tree": "a9b148609ab1be9067b69a39e9862e1d7a8d68c3",
      "parents": [
        "58794c5c23f46a7476a58e5a10dbeebb6321aa90"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 15:30:36 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 09 11:14:49 2017 -0700"
      },
      "message": "ART: Update stl_util.h\n\nReplace MakeUnique with std::make_unique. Remove unused functions.\n\nTest: m\nChange-Id: I3afdc0529cd6fb9d1797e5294a3d5ea2f6b38fc7\n"
    },
    {
      "commit": "58794c5c23f46a7476a58e5a10dbeebb6321aa90",
      "tree": "948368dd8d8376a50fe996da0438abe10da1322d",
      "parents": [
        "73321bfdd7e96e3ce62042c9e5be567ed0db1985",
        "5678db5b3a0275d04bc610236f89fac9f76b5b1e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 18:00:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 18:00:43 2017 +0000"
      },
      "message": "Merge \"ART: Refactor bit_utils and stl_util\""
    },
    {
      "commit": "b7edcda968bb0cbaa69a3ad387fcd3194f5612be",
      "tree": "50748aac195d20a7e8f6d59a6e499f3fe69418de",
      "parents": [
        "049f2a58ea9276dfd162760271ad443570f2e660"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 27 13:20:31 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 09 10:54:02 2017 -0700"
      },
      "message": "Add method tracing JVMTI callbacks\n\nAdd MethodEntryHook and MethodExitHook callbacks and associated\ncapabilities.\n\nSplit --jvmti-stress option in run-test into --jvmti-trace-stress and\n--jvmti-redefine-stress to test each different component.\n\nNB 3 differences from RI found:\n  1) RI will call methodExitHook again if the method exit hook throws\n     an exception. This can easily cause an infinite loop and the test\n     is specifically tweaked to prevent this from happening on the RI.\n  2) RI always includes the method being exited in the stack trace of\n     errors thrown in the hooks. In ART we will not include the method\n     if it is native. This is due to the way we call native methods\n     and would be extremely difficult to change.\n  3) The RI will allow exceptions thrown in the MethodEnterHook to be\n     caught by the entered method in some situations. This occurs with\n     the tryCatchExit test in 989. In ART this does not happen.\n\nBug: 34414073\nTest: ./test.py --host -j40\nTest: ART_TEST_FULL\u003dtrue DEXTER_BINARY\u003d\"/path/to/dexter\" \\\n      ./test/testrunner/testrunner.py --host -j40 -t 988\nTest: ART_TEST_FULL\u003dtrue DEXTER_BINARY\u003d\"/path/to/dexter\" \\\n      ./test/testrunner/testrunner.py --host -j40 -t 989\nTest: lunch aosp_angler-userdebug; \\\n      m -j40 droid build-art \u0026\u0026 \\\n      fastboot -w flashall \u0026\u0026 \\\n      ./test.py --target -j4\n\nChange-Id: Iab229353fae23c2ea27c2b698c831627a9f861b1\n"
    },
    {
      "commit": "73321bfdd7e96e3ce62042c9e5be567ed0db1985",
      "tree": "80c56cc813b3591490bad8a70412ddb904fa4e03",
      "parents": [
        "86060f93c3426284190661440be3bb23f3d029fe",
        "2722f380d6430be83a1c899a94999690a8ab26df"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 17:50:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 17:50:42 2017 +0000"
      },
      "message": "Merge \"ART: Fix old warnings\""
    },
    {
      "commit": "6da1071f8b23b745e943f80027155c375670875d",
      "tree": "878c89790a132a31b1a3de094fbd49757670e946",
      "parents": [
        "8375e4f918cd409be6155f8c7b323a203c090e7e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 09 10:30:43 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 09 10:30:43 2017 -0700"
      },
      "message": "ART: Fix mac build\n\nFollow-up to commit f45d61c0866461c9476f17644b27dc0664d507c5.\n\nTest: m\nChange-Id: Id9c397745f1d83e911ef9a375ba0da0a625239de\n"
    },
    {
      "commit": "8375e4f918cd409be6155f8c7b323a203c090e7e",
      "tree": "114ef9fcdd1f14fc4e0e54b26264f0fefbf75a22",
      "parents": [
        "05ae67444e15c9281582ef1fc45c4558d286040e",
        "f45d61c0866461c9476f17644b27dc0664d507c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 16:31:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 16:31:44 2017 +0000"
      },
      "message": "Merge \"ART: Fix or disable some tidy warnings.\""
    },
    {
      "commit": "05ae67444e15c9281582ef1fc45c4558d286040e",
      "tree": "c4c1bb45e81be3367dbfb36af1646f9a5d434078",
      "parents": [
        "ca333f4093648f275b71121121a7c72f99fc11af",
        "0758ae7c12df9f857b8609e1eab6ad5dfa0e517d"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jun 09 16:07:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 16:07:40 2017 +0000"
      },
      "message": "Merge \"Introduce a number of MSA instructions for MIPS32\""
    },
    {
      "commit": "2722f380d6430be83a1c899a94999690a8ab26df",
      "tree": "1ce8a54c47aefbb35a4cb18c3d3bbedcbfac9734",
      "parents": [
        "d632b8b8a031cda163c6f9a6b4e33a192f123a0b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 18:03:25 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 09 08:45:13 2017 -0700"
      },
      "message": "ART: Fix old warnings\n\nFix Wundefined-var-template warnings.\n\nPartially reverts commit df53be273509dd43725870fb20a2c7d71f7fbfd3.\n\nBug: 28149048\nBug: 29823425\nTest: m\nTest: m test-art-host\nChange-Id: Ib077312558f9e2f784859861c000fbac8375b3f5\n"
    },
    {
      "commit": "88f50b13aca3b29b4be144b2b8c14bc95506d240",
      "tree": "19ee500bccff6b2d4e1b5b94a9e7071cec54240e",
      "parents": [
        "fed9cb178be878f4e5ff862ac78ae2cf5ad305d3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 09 16:08:47 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 09 16:10:36 2017 +0100"
      },
      "message": "Don\u0027t reset to a level above warmup threshold.\n\nOtherwise, we could be in a situation where a profiling info\nnever gets allocated.\n\nTest: 655-jit-clinit\nChange-Id: I7eebab66e841784a8ce5cd32765df9fc7376cea8\n"
    },
    {
      "commit": "941c6ec94697c338addd5682c8de07fab32dfb03",
      "tree": "d04fa51a32633d7012314f2adf6f573f01f600db",
      "parents": [
        "7b805e622a4db3d0a06d4c64a6457884d3137d95"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 09 11:53:23 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 09 13:10:03 2017 +0100"
      },
      "message": "Revert \"Update profiling info allocation logic.\"\n\nCan overflow the number of compilation/profiling info requests.\n\nTest: 655-jit-clinit\nTest: jdwp jit\n\nThis reverts commit 7d6a1c0b8de6502a664ac06726e5face2fb78365.\n\nChange-Id: Ia172cfbcf304d8c2ab143574ce563f9fcfa0487f\n"
    },
    {
      "commit": "f44b3a6d3a7087999e82b1188c162c7390a13f78",
      "tree": "30a026fe2689af86ac01277352749fae97d407a1",
      "parents": [
        "d632b8b8a031cda163c6f9a6b4e33a192f123a0b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 19:47:07 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 19:47:07 2017 -0700"
      },
      "message": "ART: Fix mips build\n\nFollow-up to commit 8228cdf4ad6322ec8133564aaa51f966d36c0f17.\n\nTest: m\nChange-Id: I91672b7f08f5af9faa0926bd57e38c4936d47ec2\n"
    },
    {
      "commit": "d632b8b8a031cda163c6f9a6b4e33a192f123a0b",
      "tree": "3700f049994e44d8a865db8319b72c7a2a4cc613",
      "parents": [
        "934adc1dac48512abbd5107c2f951d1f4c0188d8",
        "3b7dc35f4e5c4d86c73b6784b7ee0df701c68ec2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 01:30:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 01:30:57 2017 +0000"
      },
      "message": "Merge changes I953d774b,Id84c44bf\n\n* changes:\n  ART: Clean up allocator.h\n  ART: Move CalleeSaveType to callee_save_type.h\n"
    },
    {
      "commit": "f45d61c0866461c9476f17644b27dc0664d507c5",
      "tree": "95d2837a03d451cccd82cad61924980beb5fd0d4",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 07 10:29:33 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 17:19:51 2017 -0700"
      },
      "message": "ART: Fix or disable some tidy warnings.\n\nAdd a strlcpy shim for the host, so we can use strlcpy instead of\nstrcpy everywhere.\n\nFixed warnings include unused-decls, (some) unreachable code, use\nafter std::move, string char append, leaks, (some) excessive padding.\n\nDisable some warnings we cannot or do not want to avoid.\n\nBug: 32619234\nTest: m\nTest: m test-art-host\nChange-Id: Ie191985eebb160d94b988b41735d4f0a1fa1b54e\n"
    },
    {
      "commit": "5678db5b3a0275d04bc610236f89fac9f76b5b1e",
      "tree": "efc4ffe5d59a0c6c5f4c15a886459962d24de4aa",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 14:11:18 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 14:11:18 2017 -0700"
      },
      "message": "ART: Refactor bit_utils and stl_util\n\nMove iterator code from bit_utils.h into bit_utils_iterator.h. Move\nIdentity into stl_util_identity.h. Remove now unnecessary includes,\nand fix up transitive users.\n\nTest: m\nChange-Id: Id1ce9cda66827c5d00584f39ed310b6b37629906\n"
    },
    {
      "commit": "3b7dc35f4e5c4d86c73b6784b7ee0df701c68ec2",
      "tree": "1e3a56846ec63148142ac6fb1fef214129f4a05e",
      "parents": [
        "8228cdf4ad6322ec8133564aaa51f966d36c0f17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 06 20:02:03 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 13:13:20 2017 -0700"
      },
      "message": "ART: Clean up allocator.h\n\nMove the single-use typedefs to their users. Remove now-unused\nincludes. Fix up transitive includes.\n\nTest: m\nChange-Id: I953d774b28f1e4f3191f96943e3a69ce66aa398a\n"
    },
    {
      "commit": "8228cdf4ad6322ec8133564aaa51f966d36c0f17",
      "tree": "6d2f5cf4e742ad644ad30eb96a9f943c9ebcb34b",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 15:03:54 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 13:13:15 2017 -0700"
      },
      "message": "ART: Move CalleeSaveType to callee_save_type.h\n\nMove the type out of runtime to decrease dependencies. Make it\na proper enum class. Fix up usage.\n\nTest: m test-art-host\nChange-Id: Id84c44bf3c59f37c8a43548e720c5fb65707b198\n"
    },
    {
      "commit": "443f8628acaf1308802cbc21865bcfd38dce8b4d",
      "tree": "2f9f939cdd7bc2c1f4f0b8ce08c0c83924073a42",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Thu Jun 08 11:31:48 2017 -0700"
      },
      "committer": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Thu Jun 08 11:44:00 2017 -0700"
      },
      "message": "Fix local reference leak under reflection.\n\nChecks fail caused by a local reference leak when reflection throwns an\nexception which prevents GC to prune classes during initialization.\n\nFixed by use ScopedLocalRef to release the resource after using.\n\nTest: test-art-host\nChange-Id: Ife160cfb768497ab3d6d1ca9686da0d6bc3281fb\n"
    },
    {
      "commit": "355b57656960160901f66133e3cca52bb4e2f326",
      "tree": "3fa427ebd087e1388fa78e70562e5811b3d0efca",
      "parents": [
        "074408d75ee439ad7b9b1eb38d688040706041db",
        "043c9088bec3d48e93477206b59fb2b5360d7bb3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 08 16:42:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 08 16:42:37 2017 +0000"
      },
      "message": "Merge \"Added more functionality to dex file tracking\""
    },
    {
      "commit": "a215c5b2bac883a57e1d35e5490241609ad22e5f",
      "tree": "52bdab66012be1643744ad9bf7eb5c5e0c90b00d",
      "parents": [
        "33e9483f641410e4133f64648c74eeb816decb30",
        "07c6d726c9acfa06252039412e9985706747648a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 08 12:34:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 08 12:34:18 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use OatFileAssistant default filter instead of the dex2oat one\"\"\""
    },
    {
      "commit": "33e9483f641410e4133f64648c74eeb816decb30",
      "tree": "227df078694922005cd37c95da1a963dca4cbda5",
      "parents": [
        "6fc7c4a669d6cbf47455e0849285c428e047df10",
        "7d6a1c0b8de6502a664ac06726e5face2fb78365"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 08 12:33:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 08 12:33:26 2017 +0000"
      },
      "message": "Merge \"Update profiling info allocation logic.\""
    },
    {
      "commit": "7d6a1c0b8de6502a664ac06726e5face2fb78365",
      "tree": "c9a66c868bac3805ac1d17ce1741d94400fef2f2",
      "parents": [
        "4d3df9131c4098828f889b9470c82880efdc91be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 08 09:48:37 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 08 13:20:24 2017 +0100"
      },
      "message": "Update profiling info allocation logic.\n\nThe change to reset the method counter to 1 and not 0\n(https://android-review.googlesource.com/#/c/405672/), made it\nso that methods could end up never been jitted when the warmup\nthreshold is 1, which is the case in kIsDebugBuild.\n\nTest: 655-jit-clinit\nTest: jdwp jit\nChange-Id: I6bdb81578a2346b0b650d898b265d4b854ff1276\n"
    },
    {
      "commit": "eced692a34d2cf63d584c703704592984cc50394",
      "tree": "97240d0eae41b0b3596d92c17419f2dc3ae7b674",
      "parents": [
        "cff1b21b3e19c5d3a2d726fdb60dacd7de2a6f0d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 01 10:54:28 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 08 13:08:34 2017 +0100"
      },
      "message": "ART: Add JIT cache race test\n\nAdds a test for the JIT code cache that attempts to trap races between\nthreads generating code and executing it.\n\nBug: 38417984\nTest: run-test --jit 707\nChange-Id: I408b2680b1d266ebe624d6e39113f0261d538e8a\n"
    },
    {
      "commit": "07c6d726c9acfa06252039412e9985706747648a",
      "tree": "833c09829e91611ad406bf1caa06a38db89d2c50",
      "parents": [
        "2127ad8bfacdd0ae700f491bfa22df0530024bba"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 07 17:06:12 2017 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 08 12:02:49 2017 +0000"
      },
      "message": "Revert \"Revert \"Use OatFileAssistant default filter instead of the dex2oat one\"\"\n\nDisable checker when testing no-prebuilds. By default, the compiler will\nonly quicken (in no prebuild mode) and will not generate a cfg file.\n\nThe checker test are already covered by other modes like:\nart-preopt (pic) or art-optimizing (npic).\n\nTest: testrunner.py --host --no-prebuild\n\nThis reverts commit df663fb4f871ae2e49aad7b58e31952ff647b061.\n\nBug: 38442248\nChange-Id: Ifc43715d610787a33a97f13620a80ba3c9f217db\n"
    },
    {
      "commit": "6fc7c4a669d6cbf47455e0849285c428e047df10",
      "tree": "364a4c7bbcccad106dfc819abd79ba4240d2f3e7",
      "parents": [
        "4d3df9131c4098828f889b9470c82880efdc91be",
        "0eb882bfc5d260e8014c26adfda11602065aa5d8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 08 09:07:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 08 09:07:25 2017 +0000"
      },
      "message": "Merge \"Use ArtMethod* .bss entries for HInvokeStaticOrDirect.\""
    },
    {
      "commit": "0758ae7c12df9f857b8609e1eab6ad5dfa0e517d",
      "tree": "cbceef23999bd640e36c052ce2accbab0a81dc22",
      "parents": [
        "4d3df9131c4098828f889b9470c82880efdc91be"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Tue May 23 11:06:23 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jun 08 10:56:46 2017 +0200"
      },
      "message": "Introduce a number of MSA instructions for MIPS32\n\nAdded a number of MSA (The MIPS SIMD Architecture) instructions.\nAdded assembler tests for each instruction.\n\nTest: mma test-art-host-gtest\n\nChange-Id: I1d499309fc08923484f64d1883b9c3f95eadd3be\n"
    },
    {
      "commit": "bdb5c8335fcce3c20b568955b14b5899bf9ff9a2",
      "tree": "5a7b497f6f4eb90b536f8567f26f003ca7f78bb4",
      "parents": [
        "97acd8ad91dedaf59d32df7041d63f4c21229084",
        "f81e6566a4d8f6ee6160ab61e23404cf28eacb7c"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jun 08 00:54:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 08 00:54:44 2017 +0000"
      },
      "message": "Merge \"Document and use AtomicStack concurrency properties\""
    },
    {
      "commit": "0669e6f898b8e77cb83ed57f12415f3b028cf37c",
      "tree": "24045a52591dd6b40b4872d477397d8c072bd034",
      "parents": [
        "3050956ebb512002dfb56d4267a457d32133435d",
        "d76615851af31791c7b1549e8c4609152237b9ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 07 19:59:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 07 19:59:43 2017 +0000"
      },
      "message": "Merge \"Handler-ize InstrumentationListener and related code\""
    },
    {
      "commit": "043c9088bec3d48e93477206b59fb2b5360d7bb3",
      "tree": "5f337b0a6a5d802ba32f976739706ae0e82f98a2",
      "parents": [
        "11d72c608e0565fabcf6b2d6c13fbc85c560a608"
      ],
      "author": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Tue Jun 06 17:14:12 2017 -0700"
      },
      "committer": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Wed Jun 07 11:19:13 2017 -0700"
      },
      "message": "Added more functionality to dex file tracking\n\nAdditional functions were added for (un)poisoning only certain sections\nof a dex file. All functions related to tracking are now in a class\n(DexFileTrackingRegistrar) since unpoisoning subsections of an already\npoisoned section cause poison reads. Static variables were added\nrepresenting specific configurations that were used for testing.\n\nGetCodeItem from art/dex/layout/dex_ir.cc was moved to\nart/runtime/dex_file.cc because dex_file_tracking_registrar calls\nGetCodeItem and GetCodeItem returns a property of a DexFile.\n\nBug: 37754950\nTest: export ART_DEX_FILE_ACCESS_TRACKING\u003dtrue \u0026\u0026 m -j \u0026\u0026 m -j\nSANITIZE_TARGET\u003daddress SANITIZE_LITE\u003dtrue test-art-host\n\nChange-Id: Ie4e5aefb6f80b18fdaae5b5e8aa3bc99d77cbeac\n"
    },
    {
      "commit": "d76615851af31791c7b1549e8c4609152237b9ce",
      "tree": "e438a8cb0892e02768c55c2bc99f8be1d00abacb",
      "parents": [
        "6ecff4d2127e70738aa2493d6deceb946c204eff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 01 13:48:16 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 07 11:10:50 2017 -0700"
      },
      "message": "Handler-ize InstrumentationListener and related code\n\nWe are going to be making instrumentation listeners that can cause\nsuspensions during their running. We explicitly handler-ize all the\ninstrumentation listener functions in order to ensure this is safe.\n\nBug: 34414073\nTest: ./test.py --host --ntrace --trace -j40\nChange-Id: Ic719080d0991b104d41b7757df8d1f332c72cd04\n"
    },
    {
      "commit": "2127ad8bfacdd0ae700f491bfa22df0530024bba",
      "tree": "0891c6ad719dc1f1e2b5dcacad3e121e48fe7c15",
      "parents": [
        "56911737e7fcf4ff594f552857e7a2f56b40a3b9",
        "df663fb4f871ae2e49aad7b58e31952ff647b061"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 07 16:26:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 07 16:26:53 2017 +0000"
      },
      "message": "Merge \"Revert \"Use OatFileAssistant default filter instead of the dex2oat one\"\""
    },
    {
      "commit": "df663fb4f871ae2e49aad7b58e31952ff647b061",
      "tree": "c90ddce83ac98252ced0a4181b0c4b1e0e34c1f8",
      "parents": [
        "f62422ed7a0a0e0ec70c520192efb79e8360340b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 07 16:25:55 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 07 16:25:55 2017 +0000"
      },
      "message": "Revert \"Use OatFileAssistant default filter instead of the dex2oat one\"\n\nThe change broke --no-prebuild tests.\n\nTest: testrunner.py --host --no-prebuild\nBug: 38442248\n\nThis reverts commit f62422ed7a0a0e0ec70c520192efb79e8360340b.\n\nChange-Id: I820226ca448375e36059e6f8f5540ba5d831261f\n"
    },
    {
      "commit": "56911737e7fcf4ff594f552857e7a2f56b40a3b9",
      "tree": "3d2dedad6a8a18d43ad528b7f50fd081fec9e168",
      "parents": [
        "05e60470e68d50c48e07b835c2b1eadb32e99fd0",
        "7b135c80fedea16844892527555b144c64651a65"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 07 15:30:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 07 15:30:31 2017 +0000"
      },
      "message": "Merge \"Only compile hot methods\""
    },
    {
      "commit": "05e60470e68d50c48e07b835c2b1eadb32e99fd0",
      "tree": "4408ba645a6f932e31f27aeefb35d1d1411678cf",
      "parents": [
        "b5f5d746ac3f2c3088292395603cb1470e7749d2",
        "cebf99ca86391d0777964a02e88138c5a46e6913"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 07 15:28:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 07 15:28:59 2017 +0000"
      },
      "message": "Merge \"Address some review comments for aog/403114\""
    },
    {
      "commit": "0eb882bfc5d260e8014c26adfda11602065aa5d8",
      "tree": "e66dbebfb1e9a254c20954a2f2f98541aebfd5af",
      "parents": [
        "b5f5d746ac3f2c3088292395603cb1470e7749d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 15 13:39:18 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 07 15:39:24 2017 +0100"
      },
      "message": "Use ArtMethod* .bss entries for HInvokeStaticOrDirect.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --target\nTest: Nexus 6P boots.\nTest: Build aosp_mips64-userdebug.\nBug: 30627598\nChange-Id: I0e54fdd2e91e983d475b7a04d40815ba89ae3d4f\n"
    }
  ],
  "next": "b5f5d746ac3f2c3088292395603cb1470e7749d2"
}
