)]}'
{
  "log": [
    {
      "commit": "1e07ca6d50d35abc70ed5c72025ec8f48ae01f25",
      "tree": "b56db69c12b4a1b474ca451175fd8fc86647c310",
      "parents": [
        "75d564e45061e1a9d28a89d3c8fa60af04ef28a8"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 02 11:40:56 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 02 14:17:16 2016 -0800"
      },
      "message": "Cleanup of redefinition testing\n\nMove redefine logic into a single common function and perform some\nother cleanup.\n\nTest: mma -j40 test-art-host\nChange-Id: I8618bda4f392b683ce198374066e356b87578e7b\n"
    },
    {
      "commit": "75d564e45061e1a9d28a89d3c8fa60af04ef28a8",
      "tree": "7b5e29f66a840e5e83c02df0b23d05501b0d63c5",
      "parents": [
        "6afaa42f50157095a3cdc742afdbc3d58b833eea",
        "2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:49:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 17:49:09 2016 +0000"
      },
      "message": "Merge \"Revert \"Make sure that const-class linkage is preserved, try again.\"\""
    },
    {
      "commit": "2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8",
      "tree": "7b5e29f66a840e5e83c02df0b23d05501b0d63c5",
      "parents": [
        "6afaa42f50157095a3cdc742afdbc3d58b833eea"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:42:00 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:43:09 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved, try again.\"\n\nReverting due to test failures as expected.\n\nBug: 30627598\nBug: 33231647\n\nThis reverts commit cb5ab35980a86b05586c402924d2e7ca9df25758.\nSquashed revert \"Additional debug logging for bug 33231647.\"\n    This reverts commit 00a441033db28d243fc33692d30eb2755fa81728.\n\nChange-Id: I0c0ee1f70d47540fec99f8a797ce13571c16147c\n"
    },
    {
      "commit": "6afaa42f50157095a3cdc742afdbc3d58b833eea",
      "tree": "72454e2b4c4bbc3a7027d98aef306836efe8e039",
      "parents": [
        "4e1a19b2e2191c27c45cac373ad9db2d61ed7fc9",
        "00a441033db28d243fc33692d30eb2755fa81728"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 16:00:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 16:00:57 2016 +0000"
      },
      "message": "Merge \"Additional debug logging for bug 33231647.\""
    },
    {
      "commit": "00a441033db28d243fc33692d30eb2755fa81728",
      "tree": "8b9897d17a70aa231a901d6b3cf9432091e98a92",
      "parents": [
        "903691455319f72219853a46340b59c9b89b7553"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 14:40:02 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 15:44:19 2016 +0000"
      },
      "message": "Additional debug logging for bug 33231647.\n\nBug: 33231647\nTest: m test-art-host\nChange-Id: I5847ce92be5f588852e04ff44fe6eca19f363b93\n"
    },
    {
      "commit": "4e1a19b2e2191c27c45cac373ad9db2d61ed7fc9",
      "tree": "4694e18e1ee50029a1506aae85630ee6d030efcd",
      "parents": [
        "903691455319f72219853a46340b59c9b89b7553",
        "112aa1088cf283d57c533be17d79c4b638665651"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 14:53:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 14:53:55 2016 +0000"
      },
      "message": "Merge \"Mterp/arm64: Add CFI directives.\""
    },
    {
      "commit": "112aa1088cf283d57c533be17d79c4b638665651",
      "tree": "7b6f8338d9f574efdacdeaf1144cd538306335c5",
      "parents": [
        "626b839f881f09a1481377a76712d08580c47a16"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 11:53:54 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 12:43:38 2016 +0000"
      },
      "message": "Mterp/arm64: Add CFI directives.\n\nAlso add two bug 31975598 workarounds to arm64 entrypoints.\n\nTest: m ART_TEST_INTERPRETER\u003dtrue test-art-target\nBug: 31456348\nBug: 31975598\nChange-Id: Ibf64160cf3b3f1ef644ff8f051ab7dc89643acf3\n"
    },
    {
      "commit": "903691455319f72219853a46340b59c9b89b7553",
      "tree": "42f33b1e3b949fcd8246f34877b46a304bb36dfe",
      "parents": [
        "982e0bf9ed2b00ef85b328de674e28342eb0b2dd",
        "cb5ab35980a86b05586c402924d2e7ca9df25758"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 01 12:11:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 12:11:07 2016 +0000"
      },
      "message": "Merge \"Make sure that const-class linkage is preserved, try again.\""
    },
    {
      "commit": "cb5ab35980a86b05586c402924d2e7ca9df25758",
      "tree": "acf33ce7ac7627682aaf822489247ca1804b60d0",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 30 15:31:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 10:13:19 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved, try again.\n\nThis CL causes occasional test failures on the build servers\nwhich we were not able to reproduce locally. So we add some\nsome additional debug output to help pinpoint the cause.\n\nBug: 30627598\nBug: 33231647\nTest: m test-art-host\n\nThis reverts commit 171cf811a1cdf8b1cbc5151505d8630741ce4cf3.\n\nChange-Id: Id56a3f0e86e8212fd547e09c61794401bff47fb0\n"
    },
    {
      "commit": "982e0bf9ed2b00ef85b328de674e28342eb0b2dd",
      "tree": "168a1d48469c072794ef2adf441d80a85cf827a7",
      "parents": [
        "85b38bd1fdf4a3aaf073e0aa1f901271b7bab338",
        "657022c0881720fea6871a7b26b49ba4ae74bbd9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 01 09:12:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 09:12:32 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: A couple of fixes to have more tests passing.\""
    },
    {
      "commit": "85b38bd1fdf4a3aaf073e0aa1f901271b7bab338",
      "tree": "c63fe08ec17c5682bdb86824d3a99905390cf30f",
      "parents": [
        "2ba0c377ec9e6cb9d59dbafdacc363b8a44e46c4",
        "fbc75db230ff393ea1d0f2dcacd7a6fb71556cce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 01 09:07:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 09:07:36 2016 +0000"
      },
      "message": "Merge \"Remove the fast path in art_quick_resolve_string.\""
    },
    {
      "commit": "2ba0c377ec9e6cb9d59dbafdacc363b8a44e46c4",
      "tree": "4e7ab7fa07e2275da3015b2d5fe39513a836db93",
      "parents": [
        "679ba8d5d53b5577f571b51af17e263abd05e760",
        "acab8d485bd9c007b991f482ed01264d527b63d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 01 02:02:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 02:02:44 2016 +0000"
      },
      "message": "Merge \"Move compiled methods to use AtomicMethodRefMap\""
    },
    {
      "commit": "679ba8d5d53b5577f571b51af17e263abd05e760",
      "tree": "0c13819fc3eccfba307d5a642e1260685d5626bf",
      "parents": [
        "0fd9a7d67878d1d88a74895c0d02c556b5de8e72",
        "71bf7b43380eb445973f32a7f789d9670f8cc97d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 01 00:45:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 00:45:28 2016 +0000"
      },
      "message": "Merge \"Optimizations around escape analysis. With tests.\""
    },
    {
      "commit": "0fd9a7d67878d1d88a74895c0d02c556b5de8e72",
      "tree": "1e10e3ad67ae8477db93e7bc9c35aaaa4ee9fa77",
      "parents": [
        "07ab8831ff6025f91f927cc9e60c04801583666c",
        "a01de59eef990c07df9815376cd3c675e3acd481"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 30 23:01:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 23:01:32 2016 +0000"
      },
      "message": "Merge \"Infrastructure for obsolete methods\""
    },
    {
      "commit": "71bf7b43380eb445973f32a7f789d9670f8cc97d",
      "tree": "76425f8578b247a845fe61724d71efc63059760f",
      "parents": [
        "52f52361c2ea37941fbda71e3c653bb8096bf516"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 16 10:17:46 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 30 13:21:21 2016 -0800"
      },
      "message": "Optimizations around escape analysis. With tests.\n\nDetails:\n(1) added new intrinsics\n(2) implemented optimizations\n      more !can be null information\n      more null check removals\n      replace return-this uses with incoming parameter\n      remove dead StringBuffer/Builder calls (with escape analysis)\n(3) Fixed exposed bug in CanBeMoved()\n\nPerformance gain:\nThis improves CafeineString by about 360%\n(removes null check from first loop, eliminates second loop completely)\n\nTest: test-art-host\n\nChange-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1\n"
    },
    {
      "commit": "acab8d485bd9c007b991f482ed01264d527b63d6",
      "tree": "fb18b6151ac3556f2baf8ac326edebb92c0991b8",
      "parents": [
        "392fb010a71b99fdb6a67929cb97171e97523b13"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 23 13:45:58 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 13:09:14 2016 -0800"
      },
      "message": "Move compiled methods to use AtomicMethodRefMap\n\nUse AtomicMethodRefMap to avoid locking and map costs.\n\nNative RAM usage for interpret-only compile FB:\n71270192B -\u003e 64117168B\n\nPerf:\nCompilerDriver::GetCompiledMethod: 0.88% -\u003e 0.04%\nMutex::ExclusiveLock: 1.55% -\u003e 1.05%\n\nBug: 32641252\n\nTest: test-art-host-run-test\n\nChange-Id: I146e7bf2f3328b4fa84f2cc19d591f4da82dccfc\n"
    },
    {
      "commit": "07ab8831ff6025f91f927cc9e60c04801583666c",
      "tree": "908a6ea9f01c47f11cb9fb7d9cd78e107ea15493",
      "parents": [
        "7874c0c9265b827393f49201d003fd6e6fcef9c0",
        "5ace201d84adb7753680bf4c7877b3b71558da82"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 21:02:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 21:02:26 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert CC related changes.\"\""
    },
    {
      "commit": "7874c0c9265b827393f49201d003fd6e6fcef9c0",
      "tree": "f63a40fb486336ceed3a54df5183876942abeef3",
      "parents": [
        "392fb010a71b99fdb6a67929cb97171e97523b13",
        "a8131266b8371667f2412fb2d1c9864f038411b9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 20:44:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 20:44:42 2016 +0000"
      },
      "message": "Merge \"Add release fence after copying object\""
    },
    {
      "commit": "392fb010a71b99fdb6a67929cb97171e97523b13",
      "tree": "f68dc5d8e6be36ede980ff75678ff550546b46d5",
      "parents": [
        "211fd802903c130ed1c47c18d1b87809d290aa69",
        "9df8931359953803441accaa124ca454a33917dc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 19:40:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 19:40:48 2016 +0000"
      },
      "message": "Merge \"Add atomic method reference map\""
    },
    {
      "commit": "9df8931359953803441accaa124ca454a33917dc",
      "tree": "8cd904585a4cdc10e64f8419b651e7c9be5ce521",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 23 13:28:16 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 19:07:20 2016 +0000"
      },
      "message": "Add atomic method reference map\n\nLess RAM usage and faster than using a normal map with\nMethodReference. Speed is faster by avoiding locking and tree\ntraversal. RAM usage is lower since the map usually had a value\nfor most method references.\n\nPlan on using for marking methods for dex2dex, storing compiled\nmethods. Also use the new map for VerifiedMethods (refactoring).\n\nAdded test.\n\nBug: 32641252\n\nTest: test-art-host-run-test\n\nChange-Id: I46268031b8e0daf9be3597145cf6ecf579a039e2\n"
    },
    {
      "commit": "5ace201d84adb7753680bf4c7877b3b71558da82",
      "tree": "4687d41f5a1c8358e8356066d1e1b43b231b6037",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 10:15:41 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 11:01:52 2016 -0800"
      },
      "message": "Revert \"Revert CC related changes.\"\n\nDisable entrypoint switching in ResetQuickAllocEntryPointsForThread\ninstead of callers. Fixes bug where instrumentation would switch\nto non CC entrypoints for non X86_64 architectures causing aborts.\n\nBug: 31018974\n\nTest: test-art-host\nTest: test/run-test 099\n\nThis reverts commit 96172e0172c5fca6e9a5ad4b857a24d8c7b064e5.\n\nChange-Id: If206694ae35ff4446c6a8a97bfbcbf2dac35e3f9\n"
    },
    {
      "commit": "a01de59eef990c07df9815376cd3c675e3acd481",
      "tree": "86f6ef41c13de572dc134956c836dd94c35d9d64",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 15 10:43:06 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 30 10:23:47 2016 -0800"
      },
      "message": "Infrastructure for obsolete methods\n\nThis adds some of the structures and functions needed to eventually\nsupport obsolete methods. Specifically this adds the code to create\nand iterate through the obsolete dex-cache maps of classes and\nre-organizes the redefinition code to be more sensible and extensible.\n\nBug: 32369913\nTest: ./test/run-test --host 902\nTest: mma -j40 test-art-host\n\nChange-Id: I93d60fa66e7512e8b059cdf42af8a56e93ef4bd7\n"
    },
    {
      "commit": "211fd802903c130ed1c47c18d1b87809d290aa69",
      "tree": "e049fbad2dd7fbf244d5163e084be339f02fc8d7",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078",
        "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::StringIndex\""
    },
    {
      "commit": "a8131266b8371667f2412fb2d1c9864f038411b9",
      "tree": "ccbad195c81bff77a03549fd08f7ac3f543a8bd6",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 17:55:19 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 09:57:13 2016 -0800"
      },
      "message": "Add release fence after copying object\n\nTry to ensure that the field CAS in ConcurrentCopying::Process will\nnever reorder before the object copy.\n\nMay fix a bug where null classes are seen.\n\nTest: test-art-host CC\n\nBug: 33210571\nChange-Id: I71ab937b7ca60c88c5f69698731edac6a8f2e91a\n"
    },
    {
      "commit": "657022c0881720fea6871a7b26b49ba4ae74bbd9",
      "tree": "a70c0c65d74d566a031f2adc6d271d5ebb904203",
      "parents": [
        "725466c0207d4b3d997633f5c321adee2dcd5483"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 23 14:19:38 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 30 17:31:36 2016 +0000"
      },
      "message": "ARM: VIXL32: A couple of fixes to have more tests passing.\n\nFix 103-string-append, CheckCast visitor, stop interpretting\nboot.oat, port Floating point compare optimization.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: I7e06f9bc1ec60a850a8fc4ef7a344b9cfc736033\n"
    },
    {
      "commit": "304f2d3a1d090846a7a55a0016efc9fc8eb14078",
      "tree": "18b63b2bc76a6ada4687797051cec5e390d08f40",
      "parents": [
        "846ddc7b9fc33e7ea139b49d5d3b1f25be5c7a82",
        "b84defb1b09803d5a47035e8010ac43984da1d4c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 16:23:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 16:23:25 2016 +0000"
      },
      "message": "Merge \"Do not call IsMarked on null.\""
    },
    {
      "commit": "846ddc7b9fc33e7ea139b49d5d3b1f25be5c7a82",
      "tree": "c294811cc6d2331bd267847b584200c5ea64fd00",
      "parents": [
        "725466c0207d4b3d997633f5c321adee2dcd5483",
        "e4d4cd2cbbe02a33745b58b1138f3c56e97f0f90"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 30 16:20:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 16:20:44 2016 +0000"
      },
      "message": "Merge \"ART: Remove duplicate StackVisitor method.\""
    },
    {
      "commit": "b84defb1b09803d5a47035e8010ac43984da1d4c",
      "tree": "081b63ee8a4ce0f06a208e269a4076331d0d6fce",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 16:02:16 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 16:02:16 2016 +0000"
      },
      "message": "Do not call IsMarked on null.\n\nThe concurrent collector checks it.\n\nTest: ART_TEST_JIT\u003dtrue test-art-host-run-test-jit\nChange-Id: I02c2462ce1d8f3092f0b2f52f8b6dede8ff4a339\n"
    },
    {
      "commit": "725466c0207d4b3d997633f5c321adee2dcd5483",
      "tree": "0dda746395e490e16a4209d0bca1c3a366ed19ea",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2",
        "8d2c459d3f694743ac6e75042d1cf9b1efb1194e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 15:49:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 15:49:41 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Implement HClassTableGet Visitor.\""
    },
    {
      "commit": "07e6a7947f3279f66f14f7af045065b5297294c2",
      "tree": "5798777d9d233585d74ee36e73c2a0555a1b7ee1",
      "parents": [
        "73209a4a64d40fb3a83a725e5929b232c89bcef8",
        "dda4396c4319b85f3d2c06136fea02aaad93a819"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 14:45:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 14:45:15 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix some test failures.\""
    },
    {
      "commit": "73209a4a64d40fb3a83a725e5929b232c89bcef8",
      "tree": "16a6ed7bbe8146ca11aa422d791af85123cc8271",
      "parents": [
        "c9e2fc27c57d4c007d26081a8e60b244ecba8665",
        "f7694610fb6cc44bc411696aea7788af620fbb95"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 14:33:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 14:33:31 2016 +0000"
      },
      "message": "Merge \"Don\u0027t call realpath on a file that may not exist.\""
    },
    {
      "commit": "c9e2fc27c57d4c007d26081a8e60b244ecba8665",
      "tree": "cd59bdb099bf2342f4400c37cfbf6ea827a56632",
      "parents": [
        "9ebca690fdfb36fe1a689fd32c3d05d999497768",
        "e51ca8bfa8a193b64901ad214842f213adca92eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\""
    },
    {
      "commit": "9ebca690fdfb36fe1a689fd32c3d05d999497768",
      "tree": "04bb8fe644c9bc961c8ac33e609c1b162ec45222",
      "parents": [
        "626b839f881f09a1481377a76712d08580c47a16",
        "96172e0172c5fca6e9a5ad4b857a24d8c7b064e5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 13:40:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 13:40:23 2016 +0000"
      },
      "message": "Merge \"Revert CC related changes.\""
    },
    {
      "commit": "f7694610fb6cc44bc411696aea7788af620fbb95",
      "tree": "c07142ea503459078645c76d82d0a93cfceaaccc",
      "parents": [
        "c23d5e478365914f08477b7aca151a140e063b55"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 22:06:50 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 12:59:25 2016 +0000"
      },
      "message": "Don\u0027t call realpath on a file that may not exist.\n\nOtherwise realpath prints an error message.\n\nbug: 25658944\nChange-Id: I63145c3d955e088e53708d8c6add945e6eab6654\n"
    },
    {
      "commit": "96172e0172c5fca6e9a5ad4b857a24d8c7b064e5",
      "tree": "04bb8fe644c9bc961c8ac33e609c1b162ec45222",
      "parents": [
        "626b839f881f09a1481377a76712d08580c47a16"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 11:52:19 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 11:52:19 2016 +0000"
      },
      "message": "Revert CC related changes.\n\nRevert: \"X86_64: Add allocation entrypoint switching for CC is_marking\"\nRevert: \"Fix mips build in InitEntryPoints\"\nRevert: \"Fix mac build in ResetQuickAllocEntryPoints\"\n\nTest: test-art-target-run-test\nChange-Id: If38d44edf8c5def5c4d8c9419e4af0cd8d3be724\n"
    },
    {
      "commit": "626b839f881f09a1481377a76712d08580c47a16",
      "tree": "789fed42d5eb016fa360fca9f943ae0bb9cecf85",
      "parents": [
        "f5ba1152d7d45a3b8a829358a9fec93acba584b6",
        "58a73d2542f95dfd0535ceaa00eedefe198074a1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 10:38:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 10:38:17 2016 +0000"
      },
      "message": "Merge \"Don\u0027t use ashmen when kIsTargetLinux is set.\""
    },
    {
      "commit": "f5ba1152d7d45a3b8a829358a9fec93acba584b6",
      "tree": "f9f484a5c53bcf27294ba4d987fcb80637587614",
      "parents": [
        "10096becf60af4f0164db861d91e239177e1f47e",
        "fc80ff7d8025d720906ee43b793d07bd916ec160"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 01:07:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 01:07:05 2016 +0000"
      },
      "message": "Merge \"Improve invalid object logging\""
    },
    {
      "commit": "e4d4cd2cbbe02a33745b58b1138f3c56e97f0f90",
      "tree": "a1cc89069197c8552846711775a09ef093015ef7",
      "parents": [
        "8662aaaae4b63b02b2762673873b90b433b2eb2d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 16:52:33 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 16:52:33 2016 -0800"
      },
      "message": "ART: Remove duplicate StackVisitor method.\n\nRemove method that is the same as the older IsShadowFrame and only\nused in tests.\n\nTest: m ART_TEST_JIT\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host-run-test-454-get-vreg\nTest: m ART_TEST_JIT\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host-run-test-457-regs\nTest: m ART_TEST_JIT\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host-run-test-570-checker-osr\nChange-Id: Id222d25d5345790b6c500ec8120880a3b9d79986\n"
    },
    {
      "commit": "10096becf60af4f0164db861d91e239177e1f47e",
      "tree": "e623dafee5e746ca7a96928f127f0ae288be0ae7",
      "parents": [
        "d7a7c7f3e93de9fa915e66d54dfc799efcc12ffb",
        "2194a6ffe9014a7ac969ed730eaea20c68de1a1f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 30 00:26:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 00:26:22 2016 +0000"
      },
      "message": "Merge \"Added support for android root in dexfuzz.\""
    },
    {
      "commit": "d7a7c7f3e93de9fa915e66d54dfc799efcc12ffb",
      "tree": "4bb4e11d0d805e0468ee2560942a8b4fe46c760c",
      "parents": [
        "f9c2f88d13337436d7f345564b765c2dfd5f80a5",
        "cc238e2645760604da1b2347b9bc9fd59a395780"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 23:38:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 23:38:00 2016 +0000"
      },
      "message": "Merge \"Fix mips build in InitEntryPoints\""
    },
    {
      "commit": "cc238e2645760604da1b2347b9bc9fd59a395780",
      "tree": "4bb4e11d0d805e0468ee2560942a8b4fe46c760c",
      "parents": [
        "f9c2f88d13337436d7f345564b765c2dfd5f80a5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 15:31:00 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 15:33:03 2016 -0800"
      },
      "message": "Fix mips build in InitEntryPoints\n\nAdded missing arg.\n\nTest: Untested\nChange-Id: I7bd25203eee92d0424f03ee9fdb9e7079d05d23c\n"
    },
    {
      "commit": "58a73d2542f95dfd0535ceaa00eedefe198074a1",
      "tree": "dd7851c379b91949f5947e2f79791bb9f320005b",
      "parents": [
        "c23d5e478365914f08477b7aca151a140e063b55"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:49:43 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 22:42:47 2016 +0000"
      },
      "message": "Don\u0027t use ashmen when kIsTargetLinux is set.\n\nTest: get JIT enabled when running ART.\nChange-Id: Ic1c351601d8e85ba6597c3b400fa0094e070a56a\n"
    },
    {
      "commit": "f9c2f88d13337436d7f345564b765c2dfd5f80a5",
      "tree": "8ee82e8c6778dec2e84fdde12231fd268088d3a9",
      "parents": [
        "ae7f6b965e15794b0014a0c1db5e1fcf9e841e5c",
        "8003cafbcade4cd2929b91de3e50d2660c424280"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 22:20:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 22:20:25 2016 +0000"
      },
      "message": "Merge \"Fix mac build in ResetQuickAllocEntryPoints\""
    },
    {
      "commit": "8003cafbcade4cd2929b91de3e50d2660c424280",
      "tree": "8ee82e8c6778dec2e84fdde12231fd268088d3a9",
      "parents": [
        "ae7f6b965e15794b0014a0c1db5e1fcf9e841e5c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 14:17:09 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 14:17:33 2016 -0800"
      },
      "message": "Fix mac build in ResetQuickAllocEntryPoints\n\nUnused arg warning.\n\nTest: None\n\nChange-Id: I5b147b1a584b96ad5457c9fee36f3edb0498cecf\n"
    },
    {
      "commit": "ae7f6b965e15794b0014a0c1db5e1fcf9e841e5c",
      "tree": "5410febb548c7970d3966325e38a14d7a7d89002",
      "parents": [
        "ab191538a1d9eee6ec96bc3fa86dde36a007a6f5",
        "6287c238a56ef32f6614484eb8ec9bcc9b726a8e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 22:07:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 22:07:48 2016 +0000"
      },
      "message": "Merge \"ARM: Fix JNI MacroAssembler after VIXL update.\""
    },
    {
      "commit": "ab191538a1d9eee6ec96bc3fa86dde36a007a6f5",
      "tree": "64c4ffaf96a8cf0aeb27bf8cbbbd5cfa42d1ff40",
      "parents": [
        "8fb28dcf0e83f7153e76e176671cd4ad1f20205b",
        "f5de23265360e15fcfceb7d07bdadca0e5bb5f0a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 21:32:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 21:32:12 2016 +0000"
      },
      "message": "Merge \"X86_64: Add allocation entrypoint switching for CC is_marking\""
    },
    {
      "commit": "8fb28dcf0e83f7153e76e176671cd4ad1f20205b",
      "tree": "c658d6bf0cc0a92a3298ec79c6405015da3d7d98",
      "parents": [
        "8662aaaae4b63b02b2762673873b90b433b2eb2d",
        "171cf811a1cdf8b1cbc5151505d8630741ce4cf3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:11:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 21:11:33 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\"\""
    },
    {
      "commit": "171cf811a1cdf8b1cbc5151505d8630741ce4cf3",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "e47172b75b8b04a450d235cf72bdc4e223a29cb5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\"\n\nBug: 30627598\n\nThis reverts commit e47172b75b8b04a450d235cf72bdc4e223a29cb5.\n\nChange-Id: I038029c71195a80f041982e82ae556d3157db7b8\n"
    },
    {
      "commit": "e51ca8bfa8a193b64901ad214842f213adca92eb",
      "tree": "b07b2534edc592d68b5461a3bdb8a31241892d54",
      "parents": [
        "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:49:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:05:51 2016 +0000"
      },
      "message": "Move inline caches GC handling in JitCodeCache.\n\nMake the classes they hold weak references and visit\nthem during SweepJitRoots.\n\nThis fixes the newly introduced deadlock:\n\nThread1:\n1) Lock JitCodeCache lock to create Profiling info for\n  ArtMethod m.\n2) m is a copied method, we need to track the actual holder,\n   needing to decode a weak reference.\n3) Weak references are not accessible due to GC.\n\nGC Thread:\n- Disallow weak reference access.\n- Wait for checkpoint.\n\nThread2:\n- Try to lock JitCodeCache lock\n- Deadlock, as Thread1 owns the JitCodeCache lock.\n\nTest: test-art-host\nbug: 31289185\nbug: 33198826\n\nChange-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8\n"
    },
    {
      "commit": "fc80ff7d8025d720906ee43b793d07bd916ec160",
      "tree": "8e3819626496189299cfb952448b53cbca9a71f5",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 28 13:13:28 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 12:40:11 2016 -0800"
      },
      "message": "Improve invalid object logging\n\nPrioritize holder logging instead of maps and stack traces.\n\nTest: test-art-host\n\nBug: 31441673\n\nChange-Id: Ibc0523ffe5a8f8ba207c2643eae65d44599dcc86\n"
    },
    {
      "commit": "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5",
      "tree": "0dec75200282ae5e49785395e97bd4e6459f1c09",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 07:38:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 11:11:46 2016 -0800"
      },
      "message": "ART: Add dex::StringIndex\n\nAdd abstraction for uint32_t string index.\n\nTest: m test-art-host\nChange-Id: I917c2881702fe3df112c713f06980f2278ced7ed\n"
    },
    {
      "commit": "6287c238a56ef32f6614484eb8ec9bcc9b726a8e",
      "tree": "092426b7fd3202eb00e5cbe80b18b96fc5ddf0c7",
      "parents": [
        "8662aaaae4b63b02b2762673873b90b433b2eb2d"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Nov 29 13:31:33 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 10:39:10 2016 -0800"
      },
      "message": "ARM: Fix JNI MacroAssembler after VIXL update.\n\nThis patch fixes an issue found here:\nhttps://android-review.googlesource.com/#/c/307532/\n\nAlso re-enables vixl MacroAssembler for arm.\n\nTest: export ART_USE_READ_BARRIER\u003dtrue; export ART_HEAP_POISONING\u003dtrue; \\\n      m test-art-host\nTest: export ART_USE_READ_BARRIER\u003dtrue; export ART_HEAP_POISONING\u003dtrue; \\\n      m test-art-target\nTest: dump-oat-boot with ART_USE_READ_BARRIER\u003dtrue\n\nChange-Id: I03e3014fb250791db2d24a0ab1a76ca96384c332\n"
    },
    {
      "commit": "8662aaaae4b63b02b2762673873b90b433b2eb2d",
      "tree": "9f97a8acb0f7cd32cc6bc936cfdfa09edeba64a9",
      "parents": [
        "52f52361c2ea37941fbda71e3c653bb8096bf516",
        "67986a15fa94d6740ba35f40a1ffdfef3245d2de"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 18:15:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 18:15:29 2016 +0000"
      },
      "message": "Merge \"Use non vixl arm macro assembler\""
    },
    {
      "commit": "67986a15fa94d6740ba35f40a1ffdfef3245d2de",
      "tree": "1975222e22270768c4cd9cfe303b0912d746bbbb",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 28 19:24:08 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 09:33:17 2016 -0800"
      },
      "message": "Use non vixl arm macro assembler\n\nThe VIXL one hits an assertion error for CC:\nexternal/vixl/src/aarch32/macro-assembler-aarch32.h:1386:\nvoid vixl::aarch32::MacroAssembler::Cmp(vixl::aarch32::Condition,\nvixl::aarch32::Register, const vixl::aarch32::Operand \u0026):\nAssertion `!AliasesAvailableScratchRegister(rn)\u0027 failed.\n\nFixes dump-oat-boot with CC.\n\nTest: test-art-target, N6P booting\n\nChange-Id: I781fe8c8c2d6cd8b246ee4509281d6c645c89a28\n"
    },
    {
      "commit": "52f52361c2ea37941fbda71e3c653bb8096bf516",
      "tree": "e30bc84256c9fce2bcb5587ef03c8bce42f4e9bd",
      "parents": [
        "ec428a7ab9d4fbfa03b852983811b3247867bb5d",
        "2e44560338780dd1877f7cf8ac18e67a50ef0b2d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 29 16:33:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 16:33:42 2016 +0000"
      },
      "message": "Merge \"Disabled fallback to interpreter in dexfuzz.\""
    },
    {
      "commit": "ec428a7ab9d4fbfa03b852983811b3247867bb5d",
      "tree": "1036aaa8f6123419158f1562a5f51d164a713c8e",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759",
        "c5646201a858bd0744634515c057ace5149489ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 16:22:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 16:22:51 2016 +0000"
      },
      "message": "Merge \"ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics.\""
    },
    {
      "commit": "60438b46090d22bb9b978196f5aa53fab3b89759",
      "tree": "7b6ab16122bba86979dfee95c94c75324af51233",
      "parents": [
        "df743754f409788b5ea7f114d3d4171a6e036040",
        "af8bcf83535cd7bf5651ada2fb08a0ba9c5191d6"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Nov 29 15:49:39 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 15:49:39 2016 +0000"
      },
      "message": "Merge \"Fix event reporting from the debugger thread\""
    },
    {
      "commit": "df743754f409788b5ea7f114d3d4171a6e036040",
      "tree": "604ed3b5e86d9f26ecc888257de3d322d014e7fd",
      "parents": [
        "ded461e9df57a9e36e82f665d9600f9ea588dd87",
        "e47172b75b8b04a450d235cf72bdc4e223a29cb5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 15:46:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 15:46:39 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\""
    },
    {
      "commit": "ded461e9df57a9e36e82f665d9600f9ea588dd87",
      "tree": "a1d664b5bd0083abd2364b914e686d1ec40d5605",
      "parents": [
        "d34d4f303bff900249cce15ff5e4a3844f71546b",
        "1af0c4ff8b79ad44a4e12d7271a66d4e775ba224"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 15:06:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 15:06:15 2016 +0000"
      },
      "message": "Merge \"Fix the target Linux builds of ART\""
    },
    {
      "commit": "c5646201a858bd0744634515c057ace5149489ca",
      "tree": "b3ae881d28d5ffa91caaa7ec37931fd6899aff5b",
      "parents": [
        "5ee771615a7e7752abb8b0d53122ca44137c4286"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 28 16:03:15 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 14:49:27 2016 +0000"
      },
      "message": "ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics.\n\nTest: m test-art-target\nChange-Id: I7316dfc40555a3c47670a3b79b4c8fc0cd3edc4f\n"
    },
    {
      "commit": "2e44560338780dd1877f7cf8ac18e67a50ef0b2d",
      "tree": "4b0fa15c180d31fde2faebabaf84e591c4fa92d5",
      "parents": [
        "d34d4f303bff900249cce15ff5e4a3844f71546b"
      ],
      "author": {
        "name": "Branislav Rankov",
        "email": "branislav.rankov@linaro.org",
        "time": "Tue Nov 29 14:02:04 2016 +0000"
      },
      "committer": {
        "name": "Branislav Rankov",
        "email": "branislav.rankov@linaro.org",
        "time": "Tue Nov 29 14:21:20 2016 +0000"
      },
      "message": "Disabled fallback to interpreter in dexfuzz.\n\nAdded the -Xno-dex-file-fallback option when running optimizing backends so\nthat it fails in case compilation fails.\n\nTest: Introduce an artificial crash in the optimizing compiler. There should\nbe a divergence reported.\ndexfuzz --input\u003dHello.dex --execute --arm --interpreter --optimizing --repeat\u003d20 --dump-output\n\nChange-Id: I8adfc68b176b7482efce0cc7335c3cc50857c5a2\n"
    },
    {
      "commit": "e47172b75b8b04a450d235cf72bdc4e223a29cb5",
      "tree": "9301e9bc08944f3b4590d9ccf6aa7656cc238adf",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 25 11:47:20 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 13:49:20 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\n\nAvoid class loading triggered by verification in the\n626-const-class-linking test. Expect spurious wakeups.\n\nAdd extra debugging output for a very strange failure\n    image_writer.cc:1144] Check failed:\n    !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\nThat class is supposed to be in the boot image (core.art for\ntests), so the failing check should not be reached at all.\n\nTest: m test-art-host\nTest: m ART_TEST_OPTIMIZING\u003dtrue \\\n        ART_TEST_JIT\u003dtrue \\\n        ART_TEST_INTERPRETER\u003dtrue \\\n        ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue \\\n        test-art-host-run-test-626-const-class-linking\nBug: 30627598\n\nThis reverts commit 09ded9201fbeec605b12741ae255663c14bda225.\n\nChange-Id: I65a68cb53f0707b8abb3555ac3dc44c82907aef5\n"
    },
    {
      "commit": "d34d4f303bff900249cce15ff5e4a3844f71546b",
      "tree": "ab6673b4f9443df1480edf80abe35da1678c373d",
      "parents": [
        "b981c5ebbaf96b07ac7182a9d7f591c6a318030a",
        "f559b572db39dce9228dcf08a36c63b8f35b3d00"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 29 11:56:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 11:56:17 2016 +0000"
      },
      "message": "Merge \"Removed quick support from dexfuzz.\""
    },
    {
      "commit": "b981c5ebbaf96b07ac7182a9d7f591c6a318030a",
      "tree": "30f5d9c4a1bb095aa5fb5d890923cb8aea80f4bb",
      "parents": [
        "c23d5e478365914f08477b7aca151a140e063b55",
        "eb26e28b1e73f7725603630d9d403e5dfa744d88"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 29 11:19:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 11:19:51 2016 +0000"
      },
      "message": "Merge \"Re-enable run-test 484-checker-register-hints with read barriers.\""
    },
    {
      "commit": "2194a6ffe9014a7ac969ed730eaea20c68de1a1f",
      "tree": "47e6c9e3628ca32718bbb01b70d0b3e2db17d883",
      "parents": [
        "c23d5e478365914f08477b7aca151a140e063b55"
      ],
      "author": {
        "name": "Branislav Rankov",
        "email": "branislav.rankov@linaro.org",
        "time": "Wed Nov 23 13:44:28 2016 +0000"
      },
      "committer": {
        "name": "Branislav Rankov",
        "email": "branislav.rankov@linaro.org",
        "time": "Tue Nov 29 11:14:32 2016 +0000"
      },
      "message": "Added support for android root in dexfuzz.\n\nTest: Execute dexfuzz with option --android-root\u003dfolder\nAll tests should be VerifyFail since folder does not exist on device.\n\nChange-Id: I3f1d75386475661f09bc2a4d2c8ae3e94a202526\n"
    },
    {
      "commit": "af8bcf83535cd7bf5651ada2fb08a0ba9c5191d6",
      "tree": "f029668c26269484652e9432fab3a246be81d2e7",
      "parents": [
        "da2d78ba97d177b80e0e9528362bcebc1fd31f0f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Nov 22 14:55:04 2016 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Nov 29 11:51:03 2016 +0100"
      },
      "message": "Fix event reporting from the debugger thread\n\nThe debugger thread may trigger events (like CLASS PREPARE after the\ninitalization of a class while processing a command).\n\nThis CL removes the incorrect CHECK that makes the runtime abort in\nthis case. However, we do check that only the debugger thread can\nreport an event while it is already processing a command.\n\nBug: 33032664\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX64\u0027\nChange-Id: I32a284cfb4df6eb44eac27bbdcabd3c426d726ce\n"
    },
    {
      "commit": "c23d5e478365914f08477b7aca151a140e063b55",
      "tree": "ada20105aecf42a0afeba3c9e715d94ed71786a5",
      "parents": [
        "5596fc184ec0cf361c569096adf153fe3d54330b",
        "932b19ae77b2b15635ea5060baec0ca939d5db86"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Nov 29 10:12:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 10:12:13 2016 +0000"
      },
      "message": "Merge \"Use junit-host instead of junit\""
    },
    {
      "commit": "5596fc184ec0cf361c569096adf153fe3d54330b",
      "tree": "9d63b5bde1b8c32a0f5fefea789ebc81e5400268",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335",
        "96fd51d52de759be442accd4df99eb2520bdd023"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 29 05:55:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 05:55:52 2016 +0000"
      },
      "message": "Merge \"Moved escape analysis to reusable module\""
    },
    {
      "commit": "96fd51d52de759be442accd4df99eb2520bdd023",
      "tree": "9d63b5bde1b8c32a0f5fefea789ebc81e5400268",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 11:22:35 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 13:27:36 2016 -0800"
      },
      "message": "Moved escape analysis to reusable module\n\nRationale:\nThis prepares other optimizations that\nwant to do some simple escape analysis.\nAlso introduces ability for client\nto inject a case-specific function.\n\nTest: test-art-host\nChange-Id: Ie38a1e24e4479dc40154673db589ec1c82fb73b9\n"
    },
    {
      "commit": "932b19ae77b2b15635ea5060baec0ca939d5db86",
      "tree": "75c04a4f24ae5f1078fb58180ce686d5d0d51d52",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 28 16:34:59 2016 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Nov 28 16:34:59 2016 +0000"
      },
      "message": "Use junit-host instead of junit\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ia54aeae56f49123885765bc896c00fd363e93c26\n"
    },
    {
      "commit": "424c03aac25835febbf5c695b943206bc40ef335",
      "tree": "45a1f8cb3ab9fe474b8cffabe6b222755ba2b886",
      "parents": [
        "49812bd439050a79d75c61d7c575d2684e9e969a",
        "7225a8d0796ef6fafbf3037cafd2446766bff514"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 28 13:15:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 28 13:15:56 2016 +0000"
      },
      "message": "Merge \"Refine the DexOptNeeded codes.\""
    },
    {
      "commit": "49812bd439050a79d75c61d7c575d2684e9e969a",
      "tree": "9a9612e9d261c64f7ec8dd0659d2c1207d1d3b09",
      "parents": [
        "4e68ebf9b6e0287f3b4f8ed6db36efdf1c81c09d",
        "b77051ea5718fe017f2fa884b9ca4c8186c95190"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 28 12:50:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 28 12:50:57 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix breaking changes from recent VIXL update.\""
    },
    {
      "commit": "4e68ebf9b6e0287f3b4f8ed6db36efdf1c81c09d",
      "tree": "c8f5260d9b68614f85b2947d81122ffcaf99fdec",
      "parents": [
        "35b6546b0a4fe423ed6f27d8c5b709d5191e99ef",
        "b18a669259aa6ba08d9ca01b5b32c1aa0417138b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 28 12:05:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 28 12:05:22 2016 +0000"
      },
      "message": "Merge \"Cache flush/invalidate needs RWX permission\""
    },
    {
      "commit": "b18a669259aa6ba08d9ca01b5b32c1aa0417138b",
      "tree": "c8f5260d9b68614f85b2947d81122ffcaf99fdec",
      "parents": [
        "35b6546b0a4fe423ed6f27d8c5b709d5191e99ef"
      ],
      "author": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Nov 17 10:51:58 2016 +0300"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 28 11:38:03 2016 +0000"
      },
      "message": "Cache flush/invalidate needs RWX permission\n\nWhen generating JIT code, perform cache maintenance operations before\nremoving page write permissions. Errata on some cores require data\nflush operations to be followed by data invalidate operations\nrequiring write permission.\n\nTest: ART_TEST_JIT\u003dtrue test-art-target on an arm64 device.\nbug: 27265969\n\nChange-Id: I70cbb0dc2ea37e42f2011d23333e386ae3f639c7\n"
    },
    {
      "commit": "35b6546b0a4fe423ed6f27d8c5b709d5191e99ef",
      "tree": "24c39209f4ae8340791965866ed847d9e65808c5",
      "parents": [
        "d162cfe794c9d4e6d9aa6b5f207db2ebd91a2113",
        "fef0664fa7b480032f17c60f767bcca43a659d8a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 28 09:39:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 28 09:39:45 2016 +0000"
      },
      "message": "Merge \"ART: Throw InternalError rather than VirtualMachineError\""
    },
    {
      "commit": "d162cfe794c9d4e6d9aa6b5f207db2ebd91a2113",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "5ee771615a7e7752abb8b0d53122ca44137c4286",
        "1c87878ca87b0c5dde08416ef75615632eace7ac"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 28 09:10:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 28 09:10:33 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Method Handles: Add VarargsCollector.\"\"\""
    },
    {
      "commit": "7225a8d0796ef6fafbf3037cafd2446766bff514",
      "tree": "265ccb923857e4b6def6b0adaf547d52215e4d71",
      "parents": [
        "5ee771615a7e7752abb8b0d53122ca44137c4286"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Nov 22 10:12:03 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Nov 28 08:24:32 2016 +0000"
      },
      "message": "Refine the DexOptNeeded codes.\n\nTo expose information useful for optimizing how dex2oat is invoked in\nthe presence of vdex files.\n\nBug: 30937355\nTest: art-test-host\n\nChange-Id: I8e09fabf8c56bf1e1041f43d3d9edf7850adc395\n"
    },
    {
      "commit": "1c87878ca87b0c5dde08416ef75615632eace7ac",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "5ee771615a7e7752abb8b0d53122ca44137c4286"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 15:46:49 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 17:04:20 2016 +0000"
      },
      "message": "Revert \"Revert \"Method Handles: Add VarargsCollector.\"\"\n\nThis reverts commit 12af7a41c224923fb55699305008214636a1a3da.\n\nTest: m test-art-host-run-test-956-methodhandles\nBug: 30550796\nChange-Id: Ia820093bab919667729daba5b14330de51a63f79\n"
    },
    {
      "commit": "fef0664fa7b480032f17c60f767bcca43a659d8a",
      "tree": "5b1f812aef3e300b7bef0bd5ad5a2fa5a8d5c38a",
      "parents": [
        "5ee771615a7e7752abb8b0d53122ca44137c4286"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 16:07:11 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 16:07:11 2016 +0000"
      },
      "message": "ART: Throw InternalError rather than VirtualMachineError\n\nInstantiate InternalError instead of VirtualMachineError as the latter\nis abstract and not instantiable.\n\nChange-Id: I3e90b28a34bef02dd1c200c02cb832aa8dce10b3\n"
    },
    {
      "commit": "5ee771615a7e7752abb8b0d53122ca44137c4286",
      "tree": "54fe54d88d2afce65e30c81b5098ef09d15a49d7",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69",
        "12af7a41c224923fb55699305008214636a1a3da"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 14:31:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 25 14:31:44 2016 +0000"
      },
      "message": "Merge \"Revert \"Method Handles: Add VarargsCollector.\"\""
    },
    {
      "commit": "12af7a41c224923fb55699305008214636a1a3da",
      "tree": "a93fcd7a973d0fd2b5dd7619858ca1e84a96408d",
      "parents": [
        "ab52ce1480d9c4701bfe3ff3530596ec0c5760ee"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 14:27:07 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 14:27:07 2016 +0000"
      },
      "message": "Revert \"Method Handles: Add VarargsCollector.\"\n\nThis reverts commit ab52ce1480d9c4701bfe3ff3530596ec0c5760ee.\n\nChange-Id: Idc6dd28b58a61cbd2c9ee72e8a0eeb07b2ca0edf\n"
    },
    {
      "commit": "dda4396c4319b85f3d2c06136fea02aaad93a819",
      "tree": "a4cf329bd2680f71b394321c55d2b8128e2d6c9a",
      "parents": [
        "b77051ea5718fe017f2fa884b9ca4c8186c95190"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Nov 21 19:55:20 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Nov 25 14:18:30 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix some test failures.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: I6cc179a56c967fc35936a5743a953013a2388c90\n"
    },
    {
      "commit": "b77051ea5718fe017f2fa884b9ca4c8186c95190",
      "tree": "bb51782f8350be00195becabc3cd8758f15010a0",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Nov 21 19:46:00 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Nov 25 14:16:31 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix breaking changes from recent VIXL update.\n\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: I02a608bf51b889a2bfff43272a3619582bf9cf20\n"
    },
    {
      "commit": "d0111420a9f924fe560a97132d09ae531852fd69",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "c3076fed3c087460410422a412c2aab3ea685ed4",
        "f51bc62a1d89a35fabaaf7e766d49502881fd591"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 11:25:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 25 11:25:44 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Improve codegen on CBZ/CBNZ\""
    },
    {
      "commit": "c3076fed3c087460410422a412c2aab3ea685ed4",
      "tree": "70713730572018ca051d7100ee452852496f12fc",
      "parents": [
        "be8440c9f91d03b2ba6ae125649e3379938bfa00",
        "b0bbe8e5c28c061bf4ef4086d3bbb2c5c5266979"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 08:32:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 25 08:32:37 2016 +0000"
      },
      "message": "Merge \"Use input-vdex-fd, or input-vdex in dex2oat.\""
    },
    {
      "commit": "be8440c9f91d03b2ba6ae125649e3379938bfa00",
      "tree": "2831fec18b88f3b9a5c898c6a0207bc9d0e4dd74",
      "parents": [
        "7b7a78e81128c30865b2b17a6f77bee286cbde74",
        "03bc659b04fefab6e1c9e08c5bd28fe8168c863f"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Nov 25 07:53:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 25 07:53:26 2016 +0000"
      },
      "message": "Merge changes Ia3853e46,Ic32af2ec,I79c6cc12,Idfd59472,I68720661\n\n* changes:\n  Refine OatStatus enum.\n  Factor out code for picking the best oat file.\n  Move dumping of oat file status inside of the OatFileAssistant.\n  Remove OatFileAssistant IsOutOfDate, IsUpToDate, and NeedsRelocation.\n  Simplify decision of which is the best oat file.\n"
    },
    {
      "commit": "03bc659b04fefab6e1c9e08c5bd28fe8168c863f",
      "tree": "1e27d6e28fd18479bd812f2abf4a88dbd36092e0",
      "parents": [
        "88bc673b146cb5fda01b4139b6e8ceec5221f106"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Nov 22 09:42:04 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 24 16:49:27 2016 +0000"
      },
      "message": "Refine OatStatus enum.\n\nReplace Exists() with a separate OatStatus code, and distinguish\nbetween the oat file being out of date due to the dex being out of\ndate or the image being out of date.\n\nBug: 30937355\nTest: oat_file_assistant_test\nChange-Id: Ia3853e461beb07f0b417276b9277b9c562b20865\n"
    },
    {
      "commit": "b0bbe8e5c28c061bf4ef4086d3bbb2c5c5266979",
      "tree": "843178c1845f734cb068fc9c3c3cf17badb79416",
      "parents": [
        "dd77c2b4ff36db082edfbcf2631c78a9282689e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 19 10:42:37 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 24 16:21:44 2016 +0000"
      },
      "message": "Use input-vdex-fd, or input-vdex in dex2oat.\n\ninput-vdex-fd is used by installd\ninput-vdex is used by run-tests, and (will be used by) go/lem\n\nThis change copies the contents of the passed vdex to the new one,\nunquicken the new vdex, and run the fast verification on the new\nvdex.\n\nbug:30937355\nTest: device boots, apps get updated faster with vdex\nTest: set TEST_VDEX to true in run-test-jar, run all tests\nTest: 628-vdex\n\nChange-Id: Idfbac4de411cebcf8ea7a6af7a417d7c7908dd72\n"
    },
    {
      "commit": "f559b572db39dce9228dcf08a36c63b8f35b3d00",
      "tree": "e54cef7952405738d9dbdd3d9716d0a3d0faa019",
      "parents": [
        "7b7a78e81128c30865b2b17a6f77bee286cbde74"
      ],
      "author": {
        "name": "Branislav Rankov",
        "email": "branislav.rankov@linaro.org",
        "time": "Wed Nov 23 11:41:43 2016 +0000"
      },
      "committer": {
        "name": "Branislav Rankov",
        "email": "branislav.rankov@linaro.org",
        "time": "Thu Nov 24 14:15:24 2016 +0000"
      },
      "message": "Removed quick support from dexfuzz.\n\nTest: Execute: dexfuzz --quick. You should get the following error:\n[ERROR] Unrecognised flag: --quick\n\nChange-Id: Iccc5509edfa5e5febfd67904d1d2d76336975070\n"
    },
    {
      "commit": "7b7a78e81128c30865b2b17a6f77bee286cbde74",
      "tree": "c8889679e5fd3cc2c95f483c35d3a065520c378a",
      "parents": [
        "4bb3c7fb33c3f8636e38884ddf023f2c9a39a413",
        "09ded9201fbeec605b12741ae255663c14bda225"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:05:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 24 13:05:13 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\""
    },
    {
      "commit": "09ded9201fbeec605b12741ae255663c14bda225",
      "tree": "c0276a06f8b6dba35e843098a05be326c8f5e2ac",
      "parents": [
        "25dcbad4462ea7279ee2bbe0884abc25bdfac77a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\n\n626-const-class-linking is failing (spurious wakeups?)\n970-iface-super-resolution-gen is failing:\n    dex2oatd F 11-24 10:57:16  6410  6410 image_writer.cc:1144]\n    Check failed: !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\n\nBug: 30627598\n\nThis reverts commit 25dcbad4462ea7279ee2bbe0884abc25bdfac77a.\n\nChange-Id: Ie010169bdde45e6ccf2e04a521da4682bd817114\n"
    },
    {
      "commit": "8d2c459d3f694743ac6e75042d1cf9b1efb1194e",
      "tree": "4b98feaae69b6d5a69eda7d3d1086b61718c44ad",
      "parents": [
        "4bb3c7fb33c3f8636e38884ddf023f2c9a39a413"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Nov 23 17:05:25 2016 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Nov 24 12:13:12 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement HClassTableGet Visitor.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: Ia334bff827a78966274dc2a80a2be8688240cadf\n"
    },
    {
      "commit": "4bb3c7fb33c3f8636e38884ddf023f2c9a39a413",
      "tree": "d9fe04abf2cf2e3dcdf8fa84a3f8812b0fe265eb",
      "parents": [
        "8f3435981e67e4b78caf0130f81dcd9a87af531e",
        "ab52ce1480d9c4701bfe3ff3530596ec0c5760ee"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 24 11:57:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 24 11:57:30 2016 +0000"
      },
      "message": "Merge \"Method Handles: Add VarargsCollector.\""
    },
    {
      "commit": "f51bc62a1d89a35fabaaf7e766d49502881fd591",
      "tree": "eadb80d9e842476ed599a129a3babad27f7d2167",
      "parents": [
        "8f3435981e67e4b78caf0130f81dcd9a87af531e"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Fri Nov 04 09:23:32 2016 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Nov 24 11:39:20 2016 +0000"
      },
      "message": "ARM: VIXL32: Improve codegen on CBZ/CBNZ\n\nThis patch improves codegen on CBZ/CBNZ.\nCompareAndBranchIfZero/CompareAndBranchIfNonZero are introduced.\n\nThese two functions can generate CMP+Bcc or Cbz/Cbnz.\nCMP+Bcc are generated by default.\nIf a hint is given (is_far_target \u003d false) and rn and label\ncan all fit into Cbz/Cbnz, then Cbz/Cbnz is generated.\nPrefer these two interfaces to using vixl32::MacroAssembler::Cbz/Cbnz.\nIn T32, Cbz/Cbnz instructions have following limitations:\n- Far targets, which are over 126 bytes away, are not supported.\n- Only low registers can be encoded.\n- Backward branches are not supported.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\n\nChange-Id: I5d2ada19ea4f83dab78baf0cf78c72e99e58d946\n"
    },
    {
      "commit": "8f3435981e67e4b78caf0130f81dcd9a87af531e",
      "tree": "dc84bd0ff5cca4bfc7ba10398242846004158d43",
      "parents": [
        "4b600964fe89b962afe3c9ae783a255789db4411",
        "25dcbad4462ea7279ee2bbe0884abc25bdfac77a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 10:07:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 24 10:07:53 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\""
    },
    {
      "commit": "88bc673b146cb5fda01b4139b6e8ceec5221f106",
      "tree": "aca0d84f067fa1901972c07f00c639e5c6922112",
      "parents": [
        "46cc64f11b1b1f0ac5e4aebd665b325a68d4d42f"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Nov 14 14:38:03 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 24 07:54:03 2016 +0000"
      },
      "message": "Factor out code for picking the best oat file.\n\nFactor out common code for determining the best oat file.\n\nBug: 30937355\nTest: oat_file_assistant_test\n\nChange-Id: Ic32af2ec493675be1a22e81c2de46a848c398f6b\n"
    },
    {
      "commit": "46cc64f11b1b1f0ac5e4aebd665b325a68d4d42f",
      "tree": "182f28f92fb576b2ad586a368ac2d0761896e832",
      "parents": [
        "3e580bc9b248586fa5d87db2098fa5c5abb7afc1"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Nov 14 14:53:55 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 24 07:54:03 2016 +0000"
      },
      "message": "Move dumping of oat file status inside of the OatFileAssistant.\n\nRather than exposing what could otherwise be internal to the\nOatFileAssistant, move the logic for dumping a human readable\nrepresentation of the status of the oat files inside the\nOatFileAssistant.\n\nBug: 30937355\nTest: oat_file_assistant_test\n\nChange-Id: I79c6cc1286a822f1dbe0035be934a2be4792563c\n"
    },
    {
      "commit": "3e580bc9b248586fa5d87db2098fa5c5abb7afc1",
      "tree": "c87d2bd3929b7d38dce320417013b3c932e25352",
      "parents": [
        "70a8426705571e84d83a060ae6abeb6d04cd2a17"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Nov 08 16:23:07 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 24 07:54:03 2016 +0000"
      },
      "message": "Remove OatFileAssistant IsOutOfDate, IsUpToDate, and NeedsRelocation.\n\nRelatively recent design changes made these functions equivalent to\nthe Status function. Prefer to use the Status function instead to\nsimplify the OatFileAssistant API, especially in preparation for\nexpanding the number of possible Status results.\n\nBug: 30937355\nTest: oat_file_assistant_test\n\nChange-Id: Idfd594729210257f693f03ca823a8d54e74034c5\n"
    },
    {
      "commit": "70a8426705571e84d83a060ae6abeb6d04cd2a17",
      "tree": "768238710f9873bd74b6c74e0613449002517484",
      "parents": [
        "4b600964fe89b962afe3c9ae783a255789db4411"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Nov 08 16:51:51 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 24 07:54:03 2016 +0000"
      },
      "message": "Simplify decision of which is the best oat file.\n\nPreviously the best oat file was determined by looking at all\ncombination of states of the oat file in the odex location and the oat\nlocation. This change simplifies the decision by using the oat\nlocation if that oat file is not out of date and using the odex\nlocation otherwise. For practical cases, both decisions lead to the\nsame result.\n\nBug: 30937355\nTest: oat_file_assistant_test\n\nChange-Id: I687206612914cdbd43950fcdd7dd818a54255a6b\n"
    },
    {
      "commit": "4b600964fe89b962afe3c9ae783a255789db4411",
      "tree": "f6508bcc09eb73cc8a4e7ec22b31e3b9667c72a5",
      "parents": [
        "b9bc47f0e24580a9dfafec830c709842b71aef89",
        "fc2dd6110c7ce5fc272836d1a7e48f3b40612c2d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 23 19:19:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 19:19:22 2016 +0000"
      },
      "message": "Merge \"Speed up verified methods\""
    }
  ],
  "next": "b9bc47f0e24580a9dfafec830c709842b71aef89"
}
