)]}'
{
  "log": [
    {
      "commit": "ea604b2a0e2e08c757e509879f6699df8945449d",
      "tree": "9fa1300027a848db5a1af2c9c432851052a8bc60",
      "parents": [
        "71976e21f12d5886990eb40747dbdee778e31fc1",
        "a204591b4537141aa6b0fa01f81cc03d92a90456"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 12:02:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 06 12:02:23 2017 +0000"
      },
      "message": "Merge \"MIPS: Improve InstructionCodeGeneratorMIPS*::GenerateSuspendCheck().\""
    },
    {
      "commit": "71976e21f12d5886990eb40747dbdee778e31fc1",
      "tree": "824ae7b92d3727dee21af873e5529745fa5c206e",
      "parents": [
        "fd443eb00b2456006f03252ba085c1f851e8adf5",
        "b065b032c1227f66c0c45e8100f987927e31c2d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 11:50:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 06 11:50:28 2017 +0000"
      },
      "message": "Merge \"MIPS: java.lang.Thread.interrupted() intrinsic\""
    },
    {
      "commit": "fd443eb00b2456006f03252ba085c1f851e8adf5",
      "tree": "b79aa6e99e01fcba51bfb8ef37aa441a35594879",
      "parents": [
        "521be425d5727496538bc52781e0f39e84422c34",
        "f31a00c9e341f55eb352c3713d6dc47bd2df453b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 04 01:09:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 04 01:09:28 2017 +0000"
      },
      "message": "Merge \"runtime: Bitstring implementation for subtype checking (2/4).\""
    },
    {
      "commit": "521be425d5727496538bc52781e0f39e84422c34",
      "tree": "8e9abc0514597ef1c8d87f20b53dd6dcf5866a86",
      "parents": [
        "f404dda8a48f2fac24ca3525257db7bc9157ba61",
        "20705131089de4abe0d3ddb94bffb80882bd4944"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri Nov 03 23:04:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 23:04:02 2017 +0000"
      },
      "message": "Merge \"Add D8 reference file for 911-get-stack-trace\""
    },
    {
      "commit": "f31a00c9e341f55eb352c3713d6dc47bd2df453b",
      "tree": "efc81ce1b6afca714ad55458354e229bec998806",
      "parents": [
        "44559f2810b9d2ead1cd7cf14515e1840313258a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 27 10:52:07 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 03 15:32:42 2017 -0700"
      },
      "message": "runtime: Bitstring implementation for subtype checking (2/4).\n\nImplement the subtype checking label as a stand-alone data type.\n\nThis stores the bitstring and overflow bits. The bitstring\ncontains the encoded (path to root, next) bits.\n\nTest: art/test.py -b -j32 --host --target\nBug: 64692057\nChange-Id: I2229e1938f5377d637595ba3f81b8af3464d1ae7\n"
    },
    {
      "commit": "f404dda8a48f2fac24ca3525257db7bc9157ba61",
      "tree": "27fdfc63b88ea04927b29ecd349ee6e48fb1fad1",
      "parents": [
        "42530a8a77432bea41ae285f038ec5216df8fe8a",
        "44559f2810b9d2ead1cd7cf14515e1840313258a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 03 19:50:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 19:50:40 2017 +0000"
      },
      "message": "Merge \"runtime: Bitstring implementation for subtype checking (1/4).\""
    },
    {
      "commit": "a204591b4537141aa6b0fa01f81cc03d92a90456",
      "tree": "2f08659b74a1c3f76d47fd061837622394f28dd0",
      "parents": [
        "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 02 12:39:54 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Fri Nov 03 11:18:47 2017 -0700"
      },
      "message": "MIPS: Improve InstructionCodeGeneratorMIPS*::GenerateSuspendCheck().\n\nRelax the only back-edge restriction. Implement optimization for\nMIPS32/MIPS64 which has already been done for the ARM \u0026 x86\narchitectures in\nhttps://android-review.googlesource.com/#/c/platform/art/+/149370/.\n\nTest: Boot \u0026 run tests on 32- \u0026 64-bit version of QEMU.\nTest: test/testrunner/testrunner.py --target --optimizing\nTest: test-art-host-gtest\nTest: test-art-target-gtest\n\nChange-Id: Ie0a4c19ee50ad532fe53933d5808f9d7a4f89b8e\n"
    },
    {
      "commit": "44559f2810b9d2ead1cd7cf14515e1840313258a",
      "tree": "3d99b348a9b8838d03b5921ff27c770a33488e68",
      "parents": [
        "dfabcc50f13f27201fd9c0ab0def187ef5945fda"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 27 10:43:08 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 03 10:36:38 2017 -0700"
      },
      "message": "runtime: Bitstring implementation for subtype checking (1/4).\n\nImplement a BitString abstraction for storing nbit-sized characters in a\nsingle machine word (uint32).\n\nThis is used to enable an O(1) subtype check in subsequent CLs.\n\nTest: art/test.py -b -j32 --host --target\nBug: 64692057\nChange-Id: I792405e0c34242cc1206cedeb18e3e6fb687d94b\n"
    },
    {
      "commit": "42530a8a77432bea41ae285f038ec5216df8fe8a",
      "tree": "157169a52d89f85586530b0291d6fd158173c749",
      "parents": [
        "5f317039d87d74f25d3b0a442072557086742d17",
        "ee29a07e1eb8be3dafc6ac62ef49f2d147d405cc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 03 16:07:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 16:07:30 2017 +0000"
      },
      "message": "Merge \"ART: Fix OOME case in proxy dispatch\""
    },
    {
      "commit": "5f317039d87d74f25d3b0a442072557086742d17",
      "tree": "6beae56f543d234b49a2f973dcbeb5f6f0bd2b90",
      "parents": [
        "72627a5f675b1c664beb2ad33d60a1c8dca80826",
        "2b2bef245d5b2c6faa2d6f36da14866b2d8f5e4f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 03 15:56:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 15:56:22 2017 +0000"
      },
      "message": "Merge \"Refactor DexInstructionIterator\""
    },
    {
      "commit": "72627a5f675b1c664beb2ad33d60a1c8dca80826",
      "tree": "03c363a13cfff3e7c7e9feb158cb2ba56c97ff8e",
      "parents": [
        "ab13432123bc22c997f9dbb12596f05ce782561a",
        "e0eb48353ddf0c1b79bfec2ba15c899a413c2c70"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 03 10:16:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 10:16:38 2017 +0000"
      },
      "message": "Merge \"Fix LSA hunt for original reference bug.\""
    },
    {
      "commit": "ee29a07e1eb8be3dafc6ac62ef49f2d147d405cc",
      "tree": "11c221884f5a66597e5a6fa1359f39dac7bef008",
      "parents": [
        "ab13432123bc22c997f9dbb12596f05ce782561a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 02 15:28:09 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 02 19:52:56 2017 -0700"
      },
      "message": "ART: Fix OOME case in proxy dispatch\n\nEven just creating the java.lang.reflect.Method to pass to the\nhandler may throw an exception.\n\nAdd coverage to run-test 044.\n\nBug: 68817306\nTest: m test-art-host\nChange-Id: Iacf8fd679b9e8a81ff7bf7d5f6227e875ab10518\n"
    },
    {
      "commit": "20705131089de4abe0d3ddb94bffb80882bd4944",
      "tree": "48fd99ca39c9c84720ebf1de9ba35152582bc00c",
      "parents": [
        "ab13432123bc22c997f9dbb12596f05ce782561a"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Sun Oct 01 21:09:09 2017 -0700"
      },
      "committer": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Thu Nov 02 17:15:42 2017 -0700"
      },
      "message": "Add D8 reference file for 911-get-stack-trace\n\nBug: 68764399\nTest: ./art/test/run-test ... --build-with-javac-dx --build-with-d8 911-get-stack-trace\n\nChange-Id: I6060ceca6370ef5dd95086448efb0cf561c9c90e\n"
    },
    {
      "commit": "ab13432123bc22c997f9dbb12596f05ce782561a",
      "tree": "4908e0efa37fb7bc2abef12ad113de8cf9767697",
      "parents": [
        "36ea6b4a6e76fa0507e81bfad7af311c93cec389",
        "c12bf4c0b6e760f5f1e4255705ac5c3c90fa0c13"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 02 22:03:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 22:03:50 2017 +0000"
      },
      "message": "Merge \"Add zip-fd support in dexoptanalyzer\""
    },
    {
      "commit": "36ea6b4a6e76fa0507e81bfad7af311c93cec389",
      "tree": "166fef79d93a5c337bbb22d5306699005c7cbb52",
      "parents": [
        "c2dca98b60427d064a472ed6e21f5bc4dd7627f1",
        "c8b95b2f67d9996a160a8d8467ad2e801b730604"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 02 21:54:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 21:54:19 2017 +0000"
      },
      "message": "Merge changes Idaefe0af,Ib5c12d46,Ieb28085e,Idffbb7f2\n\n* changes:\n  ART: Clean up global includes - jni headers\n  ART: Clean up global includes - zlib\n  ART: Clean up global includes - lz4\n  ART: Clean up global includes - icu4c\n"
    },
    {
      "commit": "c2dca98b60427d064a472ed6e21f5bc4dd7627f1",
      "tree": "468e2af522c38076557b21204610b31ac2e50093",
      "parents": [
        "e000730103771e7cc0ce2edc03f1366bf5e5cf0d",
        "535a15c6ca38844a0e480891bd38025aa4bbe5f4"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Nov 02 20:49:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 20:49:04 2017 +0000"
      },
      "message": "Merge \"Testrunner: Stop execution when a test fails with ART_TEST_KEEP_GOING\u003dfalse\""
    },
    {
      "commit": "b065b032c1227f66c0c45e8100f987927e31c2d8",
      "tree": "01f0329a4643593892d9ec4ddff25470d538e0bf",
      "parents": [
        "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 02 12:13:20 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 02 12:13:20 2017 -0700"
      },
      "message": "MIPS: java.lang.Thread.interrupted() intrinsic\n\nTest: Boot 32-/64-bit QEMU\nTest: testrunner.py --target --optimizing --32 -t 050-sync-test\nTest: testrunner.py --target --optimizing --64 -t 050-sync-test\nTest: testrunner.py --target --optimizing --32 -t 988-method-trace\nTest: testrunner.py --target --optimizing --64 -t 988-method-trace\n\nChange-Id: Ic384a8e9af3b97ae85f5f04a4c114731e83244a6\n"
    },
    {
      "commit": "535a15c6ca38844a0e480891bd38025aa4bbe5f4",
      "tree": "9fbbffc6413fa91b8d0ac64ada968d69c3a4d207",
      "parents": [
        "af52bcb7532e25331d6528c05105423312e161fd"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Nov 02 11:31:14 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Nov 02 11:34:31 2017 -0700"
      },
      "message": "Testrunner: Stop execution when a test fails with ART_TEST_KEEP_GOING\u003dfalse\n\nPreviously, the testrunner used to wait for all the existing thread to\nfinish execution which doesn\u0027t actually fit the requirement.\n\nTest: run testrunner with few failing tests\nBug: 68268743\nChange-Id: I1ad1f8c6572b4eac3c4af99caf566949aa8598e4\n"
    },
    {
      "commit": "e0eb48353ddf0c1b79bfec2ba15c899a413c2c70",
      "tree": "71dfe896afa05c39d64373518d1e1e36cb8d8d43",
      "parents": [
        "3e6c13997373efac343a65740da0c4f6e77338b9"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Mon Oct 30 13:43:14 2017 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Nov 02 16:17:17 2017 +0000"
      },
      "message": "Fix LSA hunt for original reference bug.\n\nFix a bug in LSA where it doesn\u0027t take IntermediateAddress\ninto account during hunting for original reference.\n\nIn following example, original reference i0 can be transformed\nby NullCheck, BoundType, IntermediateAddress, etc.\n  i0 NewArray\n  i1 HInstruction(i0)\n  i2 ArrayGet(i1, index)\n\nTest: test-art-host\nTest: test-art-target\nTest: load_store_analysis_test\nTest: 706-checker-scheduler\n\nChange-Id: I162dd8a86fcd31daee3517357c6af638c950b31b\n"
    },
    {
      "commit": "e000730103771e7cc0ce2edc03f1366bf5e5cf0d",
      "tree": "acaa937b65550202c5d36baf33b27bbfd7467f79",
      "parents": [
        "af52bcb7532e25331d6528c05105423312e161fd",
        "d9aff1372e6a2f573b14d124f3d6f5305bdc6080"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 02 15:59:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 15:59:55 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Prevent races with GC when transferring objects between threads\"\"\""
    },
    {
      "commit": "c12bf4c0b6e760f5f1e4255705ac5c3c90fa0c13",
      "tree": "b66cb0e189e267a3a5ebb35440e8cd3913d28710",
      "parents": [
        "af52bcb7532e25331d6528c05105423312e161fd"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Tue Oct 24 16:59:42 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Nov 02 07:33:16 2017 -0700"
      },
      "message": "Add zip-fd support in dexoptanalyzer\n\nTest: installd flow(manual), oat_file_assistant_test\n(cherry-picked from commit 89455b30a30de68d389cef68748a01e13ea1356)\nBug: 67111829\nChange-Id: Icf24c671ee060c75ba53932a7ccbe422e0ceb2e0\n"
    },
    {
      "commit": "af52bcb7532e25331d6528c05105423312e161fd",
      "tree": "4709dfe2f99871909a16ad7ac2bc6c9e068aec95",
      "parents": [
        "9d3e8fa581d2848edbf2e071ad0baad4edc2f8a3",
        "33bff25bcd7a02d35c54f63740eadb1a4833fc92"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 02 12:36:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 12:36:58 2017 +0000"
      },
      "message": "Merge \"ART: Make InstructionSet an enum class and add kLast.\""
    },
    {
      "commit": "9d3e8fa581d2848edbf2e071ad0baad4edc2f8a3",
      "tree": "0cfca535f77f2e977fea3c4b2f5463d8415c786f",
      "parents": [
        "811c33a62e3ae2f90273a6e5f6c36da79d8a970a",
        "a42e70403d85887f4d2340226334001f141dcdc9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 02 12:02:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 12:02:10 2017 +0000"
      },
      "message": "Merge \"Add support for running ART gtests with Valgrind in local installations.\""
    },
    {
      "commit": "811c33a62e3ae2f90273a6e5f6c36da79d8a970a",
      "tree": "16239b0f24ca4dae6f8db9ba3af5e4c4f8473b06",
      "parents": [
        "321b3ca9a36d769283c64d4bdee0798db80af524",
        "005ac512de3d734624a5db39bb14b71763ba730d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 02 10:41:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 10:41:55 2017 +0000"
      },
      "message": "Merge \"ART: Add mirror classes for VarHandles\""
    },
    {
      "commit": "33bff25bcd7a02d35c54f63740eadb1a4833fc92",
      "tree": "553db4f60878acf2a0fa7036a739d406df9a29b7",
      "parents": [
        "321b3ca9a36d769283c64d4bdee0798db80af524"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 01 14:35:42 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 02 10:11:02 2017 +0000"
      },
      "message": "ART: Make InstructionSet an enum class and add kLast.\n\nAdding InstructionSet::kLast shall make it easier to encode\nthe InstructionSet in fewer bits using BitField\u003c\u003e. However,\nintroducing `kLast` into the `art` namespace is not a good\nidea, so we change the InstructionSet to an enum class.\nThis also uncovered a case of InstructionSet::kNone being\nerroneously used instead of vixl32::Condition::None(), so\nit\u0027s good to remove `kNone` from the `art` namespace.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6\n"
    },
    {
      "commit": "321b3ca9a36d769283c64d4bdee0798db80af524",
      "tree": "c82cb90e210406a2bda131d3f5e2ffbc0e3991c3",
      "parents": [
        "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d",
        "0a85a95210b3874722a3b36b57fb12307b4b635d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 02 09:33:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 09:33:51 2017 +0000"
      },
      "message": "Merge \"Tighten up ahat public API.\""
    },
    {
      "commit": "005ac512de3d734624a5db39bb14b71763ba730d",
      "tree": "ef109d3d3ee408fa2d3759dab89f381675c8f934",
      "parents": [
        "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Oct 24 15:43:43 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 02 09:00:16 2017 +0000"
      },
      "message": "ART: Add mirror classes for VarHandles\n\nAdds mirror classes for VarHandle, FieldVarHandle,\nArrayElementVarHandle, ByteArrayViewVarHandle and\nByteBufferViewVarHandle.\n\nBug: 65872996\nTest: art/test.py --host -g -j32\nChange-Id: I34e4b53c21cd969b54003dcfa3527acb963bfec7\n"
    },
    {
      "commit": "c8b95b2f67d9996a160a8d8467ad2e801b730604",
      "tree": "ddf5fbee7773cc24eba5ffbe1ce201e8a9b0c294",
      "parents": [
        "238e8fcd1d37ef75b85b0a84303d70776fe64495"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 18:05:23 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 21:08:57 2017 -0700"
      },
      "message": "ART: Clean up global includes - jni headers\n\nRemove the platform jni headers from the ART-global includes.\n\nTest: mmma art\nChange-Id: Idaefe0afa71d882b8f164d7c68ea84616c2883ed\n"
    },
    {
      "commit": "238e8fcd1d37ef75b85b0a84303d70776fe64495",
      "tree": "ae9e770a0db2fd09a6914f4f2dcf4e98bd3041e6",
      "parents": [
        "f24dfb082abc4715024fe7d5e80fdba6b4e08ba2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 17:10:10 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 21:08:29 2017 -0700"
      },
      "message": "ART: Clean up global includes - zlib\n\nRemove zlib from the ART-global includes.\n\nTest: mmma art\nChange-Id: Ib5c12d46aae9cc1288c7a4f2f7e0f60444f2c6e0\n"
    },
    {
      "commit": "f24dfb082abc4715024fe7d5e80fdba6b4e08ba2",
      "tree": "85536b9259695ac4360261a0b03a4c7c1ea589c0",
      "parents": [
        "fdb7a61597bd3e836d43d78dd744719bf92b17a1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 15:41:25 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 21:07:27 2017 -0700"
      },
      "message": "ART: Clean up global includes - lz4\n\nRemove lz4 from the ART-global includes.\n\nTest: mmma art\nChange-Id: Ieb28085e9763631a723799428a77d02df0ba3c78\n"
    },
    {
      "commit": "fdb7a61597bd3e836d43d78dd744719bf92b17a1",
      "tree": "9b3217fcb45ca990304cb4f64dde3845c5399505",
      "parents": [
        "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 15:11:13 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 21:07:27 2017 -0700"
      },
      "message": "ART: Clean up global includes - icu4c\n\nRemove icu4c from the ART-global includes.\n\nTest: mmma art\nChange-Id: Idffbb7f29af35d78e4f3aa09d1d3480153e151fa\n"
    },
    {
      "commit": "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d",
      "tree": "180433228597bf3ae9db41c4a2992c185f4b577a",
      "parents": [
        "98ac0cce960ed7df71def630871aec04ac878dfa",
        "84b6933525d61048c5f080842322e223dff4a23b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 02 00:10:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 00:10:40 2017 +0000"
      },
      "message": "Merge \"Follow new type for compile_multilib\""
    },
    {
      "commit": "2b2bef245d5b2c6faa2d6f36da14866b2d8f5e4f",
      "tree": "7948ee1d32e211198a595bb7ed35558d22838da8",
      "parents": [
        "f199f1d3a9816edf9282766a8874d894d7bf87c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 17:10:19 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 01 15:36:21 2017 -0700"
      },
      "message": "Refactor DexInstructionIterator\n\nAdd a way to get the dex PC for the \"for each\" use case.\n\nBug: 67104794\nTest: test-art-host\nChange-Id: I144c459c9a2a03ec8d56842280338d1f7ce1caf0\n"
    },
    {
      "commit": "84b6933525d61048c5f080842322e223dff4a23b",
      "tree": "04947babd81d2d6a5755f97c3bb86174deb7a439",
      "parents": [
        "eae5845c6144cd32c06334893244fc5c1eb21d9a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 01 14:23:17 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 01 14:23:17 2017 -0700"
      },
      "message": "Follow new type for compile_multilib\n\nAlso move AppendProperties out of the environment conditional so\nchanges to types don\u0027t break obscure builds.\n\nTest: m checkbuild\nChange-Id: Icac25e6df64c3befdafd8ff002bbeb67810c357a\n"
    },
    {
      "commit": "98ac0cce960ed7df71def630871aec04ac878dfa",
      "tree": "0ca17af216cd1a4846e05bbfbac89244afc1468d",
      "parents": [
        "ca4e1014634aefb9c2dbb431d6b312e4ad912ca2",
        "df00a1ed1a0b633a1e66f1f650f53c22ea260e5b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 20:42:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 20:42:05 2017 +0000"
      },
      "message": "Merge \"Prevent abort in situations with recursive checkpoints\""
    },
    {
      "commit": "ca4e1014634aefb9c2dbb431d6b312e4ad912ca2",
      "tree": "14536ce9ee60c1c55c55d20d99845128dbfbc548",
      "parents": [
        "7e26cc3b2c1c23d4e03961dfec70bf24d0b6e06c",
        "891a50e9dc0f02ee34bd7348f80b621249153af5"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Nov 01 20:30:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 20:30:03 2017 +0000"
      },
      "message": "Merge \"Separate file utilities from utils.cc\""
    },
    {
      "commit": "7e26cc3b2c1c23d4e03961dfec70bf24d0b6e06c",
      "tree": "53e6eb4047a7e0099895f205ea89e8f305200e8b",
      "parents": [
        "f199f1d3a9816edf9282766a8874d894d7bf87c3",
        "0135b505b321203c9a4158716bc841aeb9352752"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 20:29:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 20:29:16 2017 +0000"
      },
      "message": "Merge \"ART: Remove now-unnecessary overbroad include for art/runtime\""
    },
    {
      "commit": "f199f1d3a9816edf9282766a8874d894d7bf87c3",
      "tree": "9df5fddf6748308e2f9a9f2a7b60e5fa67fd6dce",
      "parents": [
        "5c2c2fa0e186b61f462b02692f5cf7fe4a64644a",
        "176190cbf621f867b0cfcabdec8645fc97065567"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 01 20:22:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 20:22:22 2017 +0000"
      },
      "message": "Merge \"Make SafeDexInstructionIterator more robust\""
    },
    {
      "commit": "5c2c2fa0e186b61f462b02692f5cf7fe4a64644a",
      "tree": "b36a93dc54279ed2312dbe611e912dd9025d45a8",
      "parents": [
        "13e6f2935d67742e9eec14b412d33bf71b20697b",
        "20c46443ee06060838643abd7a2dcad339f71358"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 19:54:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 19:54:43 2017 +0000"
      },
      "message": "Merge \"[art] Add classpath check to DexFile.getDexOptNeeded\""
    },
    {
      "commit": "d9aff1372e6a2f573b14d124f3d6f5305bdc6080",
      "tree": "2e0eaeb39c909167ecb5190b51f908e3622940cd",
      "parents": [
        "df00a1ed1a0b633a1e66f1f650f53c22ea260e5b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 31 22:30:05 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 01 18:49:04 2017 +0000"
      },
      "message": "Revert \"Revert \"Prevent races with GC when transferring objects between threads\"\"\n\nThis reverts commit e5179ce0ca8becf34ba6e7b2f3988874fe647c26.\n\nReason for revert: Fixed issues with:\n  Checkpoint flag set without pending checkpoint in parent CL.\n\nBug: 67838964\nTest: ./test.py --host -j50\n\nChange-Id: I7622f9c18866b58ee3cbd9f4fe38a29b2cf84a88\n"
    },
    {
      "commit": "df00a1ed1a0b633a1e66f1f650f53c22ea260e5b",
      "tree": "82b965a44ce46f51def31e1e311a26ee991ee868",
      "parents": [
        "a2cbb2b0723a3fa05cc44e13cbe90543b3236883"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 01 09:29:53 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 01 11:47:01 2017 -0700"
      },
      "message": "Prevent abort in situations with recursive checkpoints\n\nIn situations where there were multiple checkpoints queued and the\nfirst one causes the thread to suspend itself again then the\nRunCheckpointFunction function will hit a LOG(FATAL) and abort. This\nis because the recursive checkpoint will clear out the checkpoint\nbacklog and the first RunCheckpointFunction invocation will\nunexpectedly find itself without any more checkpoints to run and\nabort.\n\nTo fix this, and simplify the code at the same time, we have changed\nthe RunCheckpointFunction method to (as its name suggests) only run a\nsingle checkpoint function. It will pop this function off the stack of\npending checkpoints and run it relying on the caller to ensure that\nall pending checkpoints are handled. This is fine since, due to the\nmultithreaded nature of checkpoints, the caller must call\nRunCheckpointFunction in a loop anyway to ensure it does not advance\nuntil all checkpoints have been handled.\n\nWe add test 203-multi-checkpoints that tests that the checkpoint\nsystem does not fall over if there are multiple checkpoints some of\nwhich can suspend.\n\nBug: 67838964\nTest: ./test.py --host -j50\nChange-Id: Ib6a3e083e6069d4839647d194bee6849d973633e\n"
    },
    {
      "commit": "891a50e9dc0f02ee34bd7348f80b621249153af5",
      "tree": "6af57b3aa8961ed8e6cd39fdf5a0ac335905b4c6",
      "parents": [
        "13e6f2935d67742e9eec14b412d33bf71b20697b"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 27 17:01:07 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Nov 01 11:39:19 2017 -0700"
      },
      "message": "Separate file utilities from utils.cc\n\nReduce the dependencies from utils.cc to arch/ subdirectories, etc.\n\nBug: 22322814\nTest: make test-art-host\nChange-Id: I4decd15ff4ec460735bfb58cebb1c6a1bf32b68f\n"
    },
    {
      "commit": "0135b505b321203c9a4158716bc841aeb9352752",
      "tree": "9cc30fd963d4ad735dfc27748eb97c92f5146a66",
      "parents": [
        "eae5845c6144cd32c06334893244fc5c1eb21d9a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 11:38:18 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 11:38:18 2017 -0700"
      },
      "message": "ART: Remove now-unnecessary overbroad include for art/runtime\n\nRemove the art/ directory header include.\n\nBug: 37538194\nTest: mmma art\nChange-Id: Id10a0506b901719a8db939b64d765936c9367aaa\n"
    },
    {
      "commit": "13e6f2935d67742e9eec14b412d33bf71b20697b",
      "tree": "a2edd43e564e04f7b948a11e17c9025a0cd82f54",
      "parents": [
        "5804e35269ec247ba794567debdfc7a0c623d919",
        "38a3f21959d5c68d3034d4d3cef0cc231ebce78a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 01 18:16:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 18:16:30 2017 +0000"
      },
      "message": "Merge \"Alignment optimizations in vectorizer.\""
    },
    {
      "commit": "5804e35269ec247ba794567debdfc7a0c623d919",
      "tree": "09df3a06aeb3f7eb6b8778bb80762d702768fc7c",
      "parents": [
        "eae5845c6144cd32c06334893244fc5c1eb21d9a",
        "43f0cdbe3281cd5c9a33d5472b1538e5617f6691"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 18:03:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 18:03:20 2017 +0000"
      },
      "message": "Merge \"ART: Intrinsify polymorphic signature methods\""
    },
    {
      "commit": "176190cbf621f867b0cfcabdec8645fc97065567",
      "tree": "dd0d797e7acb1ef3bfdb450b168fc7c6db318225",
      "parents": [
        "62540e3cc58abde95e147210d584614651d858b5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 31 09:58:07 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 01 10:34:30 2017 -0700"
      },
      "message": "Make SafeDexInstructionIterator more robust\n\nMake operator++ set the error state when if incrementing would go\npast the end of the code region.\n\nAdded test in CodeItemOverrun.\n\nBug: 67104794\nTest: test-art-host\n\nChange-Id: I7b27a1ddb60aaae08ae9ed4ba8762ce2a7746770\n"
    },
    {
      "commit": "eae5845c6144cd32c06334893244fc5c1eb21d9a",
      "tree": "940c74364abafbe92faa13e88c71d266f4c1483f",
      "parents": [
        "4536a234e56aa7038198ab8c124fe117ef882192",
        "26ef34c01ae5db2d3c964844b3717b8974a612c9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 16:37:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 16:37:06 2017 +0000"
      },
      "message": "Merge \"ART: Move intrinsics definitions to runtime\""
    },
    {
      "commit": "43f0cdbe3281cd5c9a33d5472b1538e5617f6691",
      "tree": "afed702b60c483bd5fa63be7cb3ad866b83d24d1",
      "parents": [
        "26ef34c01ae5db2d3c964844b3717b8974a612c9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Oct 10 14:47:32 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 16:22:45 2017 +0000"
      },
      "message": "ART: Intrinsify polymorphic signature methods\n\nAdds VarHandle accessor method to list of intrinsics.\n\nAdds code to interpreter to ensure intrinsics with polymorphic\nsignatures are initialized.\n\nRename most uses of InvokePolymorphic to InvokeMethodHandle (and\nsimilar changes) to be clear that the particular code path applies to\nMethodHandle instances rather than VarHandle.\n\nChange-Id: Ib74865124a1e986badc0a7c4bb3d782af07225d4\nBug: 65872996\nTest: art/test.py --host\n"
    },
    {
      "commit": "26ef34c01ae5db2d3c964844b3717b8974a612c9",
      "tree": "8470588d8d0601626b3524abb5fbe19386ba7fe4",
      "parents": [
        "62540e3cc58abde95e147210d584614651d858b5"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 13:32:41 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 16:21:52 2017 +0000"
      },
      "message": "ART: Move intrinsics definitions to runtime\n\nBug: 37538194\nTest: art/test.py --host\nChange-Id: Ic7adf5f8b14be0e1880ae898a4e199b4416a4d24\n"
    },
    {
      "commit": "20c46443ee06060838643abd7a2dcad339f71358",
      "tree": "5b77f909c9bd2f9b4adbc4a3a47f39696f3583f0",
      "parents": [
        "4536a234e56aa7038198ab8c124fe117ef882192"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 12 00:54:26 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 08:47:23 2017 -0700"
      },
      "message": "[art] Add classpath check to DexFile.getDexOptNeeded\n\nExtend DexFile.getDexOptNeeded to factor into the decision the\nexpected class loader context. If the context does not match oat\nfile assistant and dexoptanalyzer will advise kDex2OatFromScratch.\n\n(cherry picked from commit baafa55aede7cc43a27d76bd88ccc02152123ecf)\n\nBug: 62269291\nTest: m test-art-host\nMerged-In: I3a8e9321fe602712fac3595b790168b271918f10\nChange-Id: I3a8e9321fe602712fac3595b790168b271918f10\n"
    },
    {
      "commit": "4536a234e56aa7038198ab8c124fe117ef882192",
      "tree": "b29bc763d090de2ae572ed76d73cb41b28a45d90",
      "parents": [
        "a2cbb2b0723a3fa05cc44e13cbe90543b3236883",
        "0b805e737392cbbbda1aa2934d830e33a16c12ea"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Wed Nov 01 11:15:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 11:15:33 2017 +0000"
      },
      "message": "Merge \"Include ahat in the general-tests tradefed suite.\""
    },
    {
      "commit": "0a85a95210b3874722a3b36b57fb12307b4b635d",
      "tree": "9476eb6ae4c572e018bc9d09fd48836e6c34e72a",
      "parents": [
        "460e09c5a5a09937825fe101d260d5c917144369"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 30 10:54:44 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Nov 01 10:56:18 2017 +0000"
      },
      "message": "Tighten up ahat public API.\n\nAnd add build rules to make it very explict when the public API changes.\n\nChange-Id: I2319eb2004e87957c5d040d32a109ca09a06a166\nTest: m ahat-test\nTest: Change public API and verify build complains.\nTest: Change non-public API and verify build does not complain.\n"
    },
    {
      "commit": "a2cbb2b0723a3fa05cc44e13cbe90543b3236883",
      "tree": "1db9efcd8bcece516b6f5cbb48cf5f00ba7c1796",
      "parents": [
        "62540e3cc58abde95e147210d584614651d858b5",
        "e5179ce0ca8becf34ba6e7b2f3988874fe647c26"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 31 22:29:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 31 22:29:21 2017 +0000"
      },
      "message": "Merge \"Revert \"Prevent races with GC when transferring objects between threads\"\""
    },
    {
      "commit": "e5179ce0ca8becf34ba6e7b2f3988874fe647c26",
      "tree": "6d1bad18374493e2e85f715a575dea65f1725317",
      "parents": [
        "7585b91bfc77b8e4b821ccfa716fa86e46455275"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 31 22:28:11 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 31 22:28:11 2017 +0000"
      },
      "message": "Revert \"Prevent races with GC when transferring objects between threads\"\n\nThis reverts commit 7585b91bfc77b8e4b821ccfa716fa86e46455275.\n\nReason for revert: Seems to be causing fatal error: \n  Checkpoint flag set without pending checkpoint\n\nChange-Id: I98ea653e629d73e854907115583afed3ed5ac68e\nTest: None.\nBug: 67838964\n"
    },
    {
      "commit": "62540e3cc58abde95e147210d584614651d858b5",
      "tree": "1ceacf74b8aa3980d8c0b03a757c9eb9d3b94330",
      "parents": [
        "a877fa31eadeebb481122bbd444f9c3816a35369",
        "7585b91bfc77b8e4b821ccfa716fa86e46455275"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 31 15:43:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 31 15:43:09 2017 +0000"
      },
      "message": "Merge \"Prevent races with GC when transferring objects between threads\""
    },
    {
      "commit": "0b805e737392cbbbda1aa2934d830e33a16c12ea",
      "tree": "982b9dacb2814f02a63df743d644a042a8075780",
      "parents": [
        "930e332a1f408f8f066e188270bda0e3edf24aab"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Tue Oct 31 14:37:45 2017 +0000"
      },
      "committer": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Tue Oct 31 14:42:18 2017 +0000"
      },
      "message": "Include ahat in the general-tests tradefed suite.\n\nSpecifically, this makes ahat available on the classpath of the\ngeneral-tests tradefed suite. It will be used by libcore tests that\nrun there.\n\nChange-Id: If3fa3a78c6b9c4ce4df22305bcd8d731b9466671\nBug: 67283029\nBug: 67999970\nTest: make ahat tradefed-all\n"
    },
    {
      "commit": "a877fa31eadeebb481122bbd444f9c3816a35369",
      "tree": "1db9efcd8bcece516b6f5cbb48cf5f00ba7c1796",
      "parents": [
        "ec52a11b86c6917dfed40e840db936a266567dbe",
        "af7c9028905ccc0bb876e07dbe06921a80be9ebd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 31 01:31:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 31 01:31:16 2017 +0000"
      },
      "message": "Merge \"Fix DexInstructionIterator overrun bug\""
    },
    {
      "commit": "7585b91bfc77b8e4b821ccfa716fa86e46455275",
      "tree": "b37517925ac9ab701cbae7f446dc8bb624ddd492",
      "parents": [
        "0d2b2ad6cd9ca650d7a3f85a42afaf518cbfa4e0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 30 15:33:58 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 30 16:16:41 2017 -0700"
      },
      "message": "Prevent races with GC when transferring objects between threads\n\nWe could have races with the GC when JVMTI code transfers a local\nreference from one thread to another. This race would happen if a GC\nwas currently underway causing an unmoved reference to be transferred\nto a thread that has already fixed up all of its references. This\nmeant that the receiving thread would now have a reference belonging\nto the from-space on its stack.\n\nThis could cause memory errors and CHECK failures.\n\nTo fix this we make sure to run all checkpoints where local references\nmight be transferred in a GC-critical-section.\n\nWe also needed to fix a too-strict check in the method verifier where\nwe were incorrectly asserting that suspension be allowable when in\nfact it was not necessary in all cases.\n\nTest: ./test.py --host -j50\nBug: 67838964\n\nChange-Id: Ib9166cc233d3c1b488864c0aff33246a3f99e436\n"
    },
    {
      "commit": "af7c9028905ccc0bb876e07dbe06921a80be9ebd",
      "tree": "53d7b80fb299e0a34b9951610740935f6f3ca802",
      "parents": [
        "460e09c5a5a09937825fe101d260d5c917144369"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 27 09:42:46 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 30 16:12:55 2017 -0700"
      },
      "message": "Fix DexInstructionIterator overrun bug\n\nHandle cases where the dex instructions can go past the end of the\ncode item in dexlayout.\n\nSince dexlayout runs before method verification, we need to be\ncareful to not go past the end of the code item.\n\nAdded test.\n\nBug: 67104794\nTest: test-art-host\n\nChange-Id: Idf7d51344659b2c75207bdf444e39f271feb8d3a\n"
    },
    {
      "commit": "ec52a11b86c6917dfed40e840db936a266567dbe",
      "tree": "16b09ab310cff24a97fa94d0b69a6ee14e92333f",
      "parents": [
        "437bb1e438075fbea579c89ea698c62071e3d864",
        "7b44df85ce4b8a92235a3e991917f1596817c87d"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Oct 30 19:35:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 30 19:35:17 2017 +0000"
      },
      "message": "Merge \"Update asm_support_gen.h for switch to clang-4375569.\""
    },
    {
      "commit": "437bb1e438075fbea579c89ea698c62071e3d864",
      "tree": "47798630e8717e9a7181ebae01b7d43679356678",
      "parents": [
        "03bcd79437499a68478d4d449f24a2d1097c9be8",
        "a7342250ad72eb8c9c043d9d56d49bffcdcec31c"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Mon Oct 30 19:21:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 30 19:21:16 2017 +0000"
      },
      "message": "Merge \"Make boolean-2-integral-conv less dexer sensitive.\""
    },
    {
      "commit": "03bcd79437499a68478d4d449f24a2d1097c9be8",
      "tree": "c9bf9766dbf61ed6bce1b1f3a3713879d1be623d",
      "parents": [
        "460e09c5a5a09937825fe101d260d5c917144369",
        "0fa1786bdcc333873ed65a1f77a4669d5701ac5e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 30 18:41:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 30 18:41:36 2017 +0000"
      },
      "message": "Merge \"Avoid JVMTI global deoptimization when possible\""
    },
    {
      "commit": "a42e70403d85887f4d2340226334001f141dcdc9",
      "tree": "acb0935e9a9f393efde43f18c2d9ae7b218a4e18",
      "parents": [
        "5751dc831ffd8acb089c2aff2e2ddf18f89da975"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Oct 30 17:24:43 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Oct 30 18:07:39 2017 +0000"
      },
      "message": "Add support for running ART gtests with Valgrind in local installations.\n\nTest: m valgrind-test-art-target-gtest with ART_TEST_ANDROID_ROOT\u003d/data/local/tmp/system\nBug: 29282211\nChange-Id: I15099c31f0d8bd9edaf00837e8e82c47379706f1\n"
    },
    {
      "commit": "0fa1786bdcc333873ed65a1f77a4669d5701ac5e",
      "tree": "3ee1a5ead68150d60c0a72efa4c85b7db5b3e689",
      "parents": [
        "0d2b2ad6cd9ca650d7a3f85a42afaf518cbfa4e0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 24 13:43:05 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 30 09:43:57 2017 -0700"
      },
      "message": "Avoid JVMTI global deoptimization when possible\n\nThis changes the openjdkjvmti plugin to be more controlled about the\nsituations that it will deoptimize everything. Most notably this makes\nthe plugin deoptimize only individual methods for breakpoints instead\nof doing a full deoptimization. It also doesn\u0027t deoptimize for the\nJVMTI_EVENT_EXCEPTION method, since our throwing code will always send\nthe appropriate event.\n\nImpact:\n    Exoplayer benchmark with breakpointlogger setting a breakpoint on\n    a method that is never called.\n\n    The agent is the tools/breakpoint-logger agent.\n\n    \u0027art\u0027 options are for all runs were:\n        --64\n        -Xusejit:true\n        -Xcompiler-option --debuggable\n    \u0027art\u0027 options for \u0027Pre change\u0027 and \u0027Post change\u0027 runs included:\n        -Xplugin:libopenjdkjvmti.so\n        \u0027-agentpath:libbreakpointlogger.so\u003dLbenchmarks/common/java/BenchmarkBase;-\u003erun()V@0\u0027\n\n    Clean run (no agent loaded):\n        Running FMP4 x 1 : 53\n        Running TS x 1 : 144\n        Running FMP4 x 2500 : 3309\n        Running TS x 100 : 3584\n        ExoPlayerBench(RunTime): 6977000.0 us.\n    Pre change:\n        Running FMP4 x 1 : 159\n        Running TS x 1 : 9395\n        Running FMP4 x 2500 : 298591\n        Running TS x 100 : 944447\n        ExoPlayerBench(RunTime): 1.243226E9 us.\n    Post change:\n        Running FMP4 x 1 : 87\n        Running TS x 1 : 495\n        Running FMP4 x 2500 : 2939\n        Running TS x 100 : 3947\n        ExoPlayerBench(RunTime): 6979000.0 us.\n\n    Post change vs clean run is well within margin of error for this\n    benchmark.\n\nTest: ./test.py --host -j50\nTest: ./art/tools/run-prebuild-libjdwp-tests.sh\n\nBug: 62821960\nBug: 67958496\n\nChange-Id: I63ef04f71c36c34d8534651d0c075921a836ec08\n"
    },
    {
      "commit": "460e09c5a5a09937825fe101d260d5c917144369",
      "tree": "6528c7e9b17425a1b3093e03f08504c580b33e65",
      "parents": [
        "759812202f4a2d1ba115f62c5bcc60cf29dec48a",
        "8009a1e6d7959389173971799d3749d9c58dc7d9"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Sat Oct 28 07:20:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 28 07:20:43 2017 +0000"
      },
      "message": "Merge \"Work around for 910-method with D8\""
    },
    {
      "commit": "8009a1e6d7959389173971799d3749d9c58dc7d9",
      "tree": "10a48da6742a3a5bd7cc252dbabbf1f5637fafcc",
      "parents": [
        "0d2b2ad6cd9ca650d7a3f85a42afaf518cbfa4e0"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri Oct 27 19:16:32 2017 -0700"
      },
      "committer": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri Oct 27 20:08:00 2017 -0700"
      },
      "message": "Work around for 910-method with D8\n\nThere is no good way to tell if we are using D8 or not so we are\nnot able to determine if we should patch the referene file or not.\n\nTo work around the issue, we are going to try to patch D8\u0027s expected\noutput should the initial check fails.\n\nBug: 68406220\nTest: ./art/test.py --host -r -t 910-methods\nChange-Id: If22318c69eca809398d98d063b3c586010c53515\n"
    },
    {
      "commit": "759812202f4a2d1ba115f62c5bcc60cf29dec48a",
      "tree": "11119a0ed496c721d685dcc29fcb88e283738c3a",
      "parents": [
        "0d2b2ad6cd9ca650d7a3f85a42afaf518cbfa4e0",
        "dfabcc50f13f27201fd9c0ab0def187ef5945fda"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 28 00:01:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 28 00:01:47 2017 +0000"
      },
      "message": "Merge \"base: Fix bitstruct bug with assigning fields\""
    },
    {
      "commit": "a7342250ad72eb8c9c043d9d56d49bffcdcec31c",
      "tree": "d341e499e20c2933ae171a376998779a1ae091ed",
      "parents": [
        "0d2b2ad6cd9ca650d7a3f85a42afaf518cbfa4e0"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri Oct 27 15:12:55 2017 -0700"
      },
      "committer": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri Oct 27 15:12:55 2017 -0700"
      },
      "message": "Make boolean-2-integral-conv less dexer sensitive.\n\nD8 generated code is pretty trivial so I left it out of the SmaliTests.\n\nBug: 65168732\nTest: art/test/run-test ... 593-checker-boolean-2-integral-conv\nChange-Id: Iddc907e9a27b856d3ac2412dd33fdffa0e7e2c24\n"
    },
    {
      "commit": "dfabcc50f13f27201fd9c0ab0def187ef5945fda",
      "tree": "eee8862eebf83d94cf8fb81042666732390933aa",
      "parents": [
        "2875173c75049777e6b63dbc9739846dd8f7d085"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 26 14:51:52 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 27 15:06:23 2017 -0700"
      },
      "message": "base: Fix bitstruct bug with assigning fields\n\nGiven a BitStruct \u0027foo\u0027, where bar was a BitStructField, assignment was\nbroken because it was using the C++ default behavior (copy the entire\nword).\n\n  foo.bar \u003d other_foo.bar\n\nThis will now correctly use BitFieldInsert to update the \u0027bar\u0027 bitfield.\n\nChange-Id: I1464462ffd4df22ad14a2e43a34f74d75ac2809a\n"
    },
    {
      "commit": "0d2b2ad6cd9ca650d7a3f85a42afaf518cbfa4e0",
      "tree": "6d1bad18374493e2e85f715a575dea65f1725317",
      "parents": [
        "d07e065b30ac99039ff466eff0d547c84e2fc9d2",
        "b1b0ed2b2889d42dcf800a3bdfe734759909482d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 27 19:54:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 19:54:08 2017 +0000"
      },
      "message": "Merge \"Use the backtrace interface to skip java maps.\""
    },
    {
      "commit": "d07e065b30ac99039ff466eff0d547c84e2fc9d2",
      "tree": "08518e32feafaf46feed6e314e5be1f08a9d0f3b",
      "parents": [
        "1a36a3cb97b04644c002112b14e7e055d85585e9",
        "2c9ac40a6eece3a120a612322ffd7f26a295ee66"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri Oct 27 19:25:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 19:25:01 2017 +0000"
      },
      "message": "Merge \"Disable DX workaround for 611-checker-simplify-if\""
    },
    {
      "commit": "1a36a3cb97b04644c002112b14e7e055d85585e9",
      "tree": "e3fbb45d88043dc85c6ceffcd2fa1e96bb2e1a87",
      "parents": [
        "420e7fdd203c9de32a61afae35f2b76ee4d20bf6",
        "529d2594d6eeb00d2fb888db77b979d50a89bc8e"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Fri Oct 27 19:24:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 19:24:27 2017 +0000"
      },
      "message": "Merge \"Make checker-register-hints less dexer sensitive.\""
    },
    {
      "commit": "420e7fdd203c9de32a61afae35f2b76ee4d20bf6",
      "tree": "a6766b1f876997383edc7fe8d562ce7fb289eef1",
      "parents": [
        "aabc5e63fb68b0ac4bd614231e1e4f8215c4dc56",
        "e434c4f47e30a6440834d14ee060f2879cbc18aa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 27 18:38:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 18:38:30 2017 +0000"
      },
      "message": "Merge \"MIPS: Basic SIMD reduction support.\""
    },
    {
      "commit": "b1b0ed2b2889d42dcf800a3bdfe734759909482d",
      "tree": "655028ee6fb94d38d2569a6ef5577b9b5370c504",
      "parents": [
        "5751dc831ffd8acb089c2aff2e2ddf18f89da975"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 24 15:38:14 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 27 11:17:55 2017 -0700"
      },
      "message": "Use the backtrace interface to skip java maps.\n\nThis has no effect until the new unwinder is used. When the new\nunwinder is enabled this will have nearly the same behavior as the\nold unwinder. The difference is that the old unwinder ignored the\nminidebug information (compressed section data) completely. The new\nunwinder will not ignore minidebug information in system libraries,\nit will only ignore them in .oat or .odex maps.\n\nThere will be a small difference between the new and old unwinder. The\nnew unwinder when dumping in an ANR trace file looks like this:\n\n  native: #00 pc 0000000000069abc  /system/lib64/libc.so (__epoll_pwait+8)\n  native: #01 pc 000000000001feb4  /system/lib64/libc.so (epoll_pwait+52)\n  native: #02 pc 0000000000015cec  /system/lib64/libutils.so (android::Looper::pollInner(int)+144)\n  native: #03 pc 0000000000015bcc  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+108)\n  native: #04 pc 0000000000110d98  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)\n  at android.os.MessageQueue.nativePollOnce(Native method)\n  at android.os.MessageQueue.next(MessageQueue.java:325)\n  at android.os.Looper.loop(Looper.java:142)\n  at android.app.ActivityThread.main(ActivityThread.java:6569)\n  at java.lang.reflect.Method.invoke(Native method)\n  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)\n  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)\n\nThe old unwinder looks like this:\n\n  native: #00 pc 0000000000069abc  /system/lib64/libc.so (__epoll_pwait+8)\n  native: #01 pc 000000000001feb4  /system/lib64/libc.so (epoll_pwait+52)\n  native: #02 pc 0000000000015cec  /system/lib64/libutils.so (android::Looper::p\nollInner(int)+144)\n  native: #03 pc 0000000000015bcc  /system/lib64/libutils.so (android::Looper::p\nollOnce(int, int*, int*, void**)+108)\n  native: #04 pc 0000000000110d98  /system/lib64/libandroid_runtime.so (???)\n  native: #05 pc 00000000001d1e1c  /system/framework/arm64/boot-framework.oat (J\nava_android_os_MessageQueue_nativePollOnce__JI+140)\n  at android.os.MessageQueue.nativePollOnce(Native method)\n  at android.os.MessageQueue.next(MessageQueue.java:325)\n  at android.os.Looper.loop(Looper.java:142)\n  at android.app.ActivityThread.main(ActivityThread.java:6569)\n  at java.lang.reflect.Method.invoke(Native method)\n  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.jav\na:438)\n  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)\n\nTest: kill -3 of android process.\nChange-Id: If9d282d1a7a303c4f2af296bd98b1994b9bc2660\n"
    },
    {
      "commit": "aabc5e63fb68b0ac4bd614231e1e4f8215c4dc56",
      "tree": "d94bb13c8eea14d00c180c618bf54f6cd9a2aea6",
      "parents": [
        "5751dc831ffd8acb089c2aff2e2ddf18f89da975",
        "733bd4d85ccebe7a4e78aa6c8c4c691fde47843b"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 27 18:05:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 18:05:32 2017 +0000"
      },
      "message": "Merge \"Separate MemMap from DexFile completely\""
    },
    {
      "commit": "38a3f21959d5c68d3034d4d3cef0cc231ebce78a",
      "tree": "fae9ab2b683bd2494a1480c7453e1beeace0e836",
      "parents": [
        "df12b6fbd98883cc1714f731847b7628f2fb7f11"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Oct 20 17:02:21 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Oct 27 10:50:36 2017 -0700"
      },
      "message": "Alignment optimizations in vectorizer.\n\nRationale:\nSince aligned data access is generally better (enables more efficient\naligned moves and prevents nasty cache line splits), computing and/or\nenforcing alignment has been added to the vectorizer:\n\n  (1) If the initial alignment is known completely and suffices,\n      then a static peeling factor enforces proper alignment.\n  (2) If (1) fails, but the base alignment allows, dynamically peeling\n      until total offset is aligned forces proper aligned access patterns.\n\nBy using ART conventions only, any forced alignment is preserved\nover suspends checks where data may move.\n\nNote 1:\nCurrent allocation convention is just 8 byte alignment on arrays/strings,\nso only ARM32 benefits. However, all optimizations are implemented in\na general way, so moving to a 16 byte alignment will immediately\ntake advantage of any new convention!!\n\nNote 2:\nThis CL also exposes how bad the choice of 12 byte offset of arrays\nreally is. Even though the new optimizations fix the misaligned, it\nrequires peeling for the most common case: 0 indexed loops. Therefore,\nwe may even consider moving to a 16 byte offset. Again the optimizations\nin this CL will immediately take advantage of that new convention!!\n\nTest: test-art-host test-art-target\n\nChange-Id: Ib6cc0fb68c9433d3771bee573603e64a3a9423ee\n"
    },
    {
      "commit": "733bd4d85ccebe7a4e78aa6c8c4c691fde47843b",
      "tree": "d94bb13c8eea14d00c180c618bf54f6cd9a2aea6",
      "parents": [
        "5751dc831ffd8acb089c2aff2e2ddf18f89da975"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 26 10:39:15 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 27 08:53:41 2017 -0700"
      },
      "message": "Separate MemMap from DexFile completely\n\nCreate a container class for holding ownership of MemMap and segregate\nthat functionality to dex_file_loader.  This removes the dependency\nbetween dex_file.cc and mem_map.cc.\n\nBug: 22322814\nTest: make test-art-host\nChange-Id: I96db6fd10cdbad774c2f1f85c249418a154fbd52\n"
    },
    {
      "commit": "e434c4f47e30a6440834d14ee060f2879cbc18aa",
      "tree": "fd7ef3045089da9da5671e830edf55114aaf8bf1",
      "parents": [
        "5751dc831ffd8acb089c2aff2e2ddf18f89da975"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Mon Oct 23 16:40:22 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Fri Oct 27 12:34:58 2017 +0200"
      },
      "message": "MIPS: Basic SIMD reduction support.\n\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs for MIPS.\n\nNote: Testing is done with checker parts of tests 661 and 665,\n      locally changed to cover MIPS32 cases. These changes can\u0027t\n      be included in this patch since MSA is not a default option.\n\nTest: test-art-host test-art-target\nChange-Id: Ia3b3646afecb76c2f00996a30923ca70302be57e\n"
    },
    {
      "commit": "5751dc831ffd8acb089c2aff2e2ddf18f89da975",
      "tree": "bdbf90587d3c0aaa42a2276db06bd1ddeb3cb2c0",
      "parents": [
        "dc02d53eeea1c80d4f77cc66a00c42d398a04c18",
        "e875f4c210ce0598e47b6d66ec12cd7c60208844"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 27 10:08:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 10:08:58 2017 +0000"
      },
      "message": "Merge \"Don\u0027t verify dex file when the runtime is in NoVerify mode.\""
    },
    {
      "commit": "dc02d53eeea1c80d4f77cc66a00c42d398a04c18",
      "tree": "0a3501460d4acb00f884d720338707eb24d9397b",
      "parents": [
        "81d7964f47079fa72c7a1865f7353fbbea3475e4",
        "1b79bbcdc1c9fee58cec0da6b19afd75d0bb47c9"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Oct 27 08:00:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 27 08:00:53 2017 +0000"
      },
      "message": "Merge \"Fix bugs with strong versus weak reference paths.\""
    },
    {
      "commit": "529d2594d6eeb00d2fb888db77b979d50a89bc8e",
      "tree": "58265ae10018a4d9cadf06128c8d74d445e3b50d",
      "parents": [
        "4cee4d08dbbeba1127b7424f8a721fd6c28943d8"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Thu Oct 26 16:17:25 2017 -0700"
      },
      "committer": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Thu Oct 26 16:49:22 2017 -0700"
      },
      "message": "Make checker-register-hints less dexer sensitive.\n\nBoth DX and D8 uses the branch type but ordered the blocks differently.\nI have added both ordering to Smali.\n\nBug: 65168732\nTest: art/test/run-test ... 484-checker-register-hints\n\nChange-Id: I42a323b800fa8133db8d4e721d380d9f734f8d88\n"
    },
    {
      "commit": "81d7964f47079fa72c7a1865f7353fbbea3475e4",
      "tree": "ef7305aeb60ad942d612172fae37d3b8cc4fa1ab",
      "parents": [
        "6dd3e7a5958fb2d3bf2df220bbea048a6ca10094",
        "ac64304a3a0f589c3136c477979824b620e73582"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Oct 26 22:47:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 22:47:01 2017 +0000"
      },
      "message": "Merge \"Use -Werror in art/dexdump\""
    },
    {
      "commit": "2c9ac40a6eece3a120a612322ffd7f26a295ee66",
      "tree": "13a4c4d42fab7d624491e5ead301f4be92b76ee3",
      "parents": [
        "4cee4d08dbbeba1127b7424f8a721fd6c28943d8"
      ],
      "author": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Thu Oct 26 15:39:57 2017 -0700"
      },
      "committer": {
        "name": "Alan Leung",
        "email": "acleung@google.com",
        "time": "Thu Oct 26 15:39:57 2017 -0700"
      },
      "message": "Disable DX workaround for 611-checker-simplify-if\n\nThe current D8 output is closer to DX.\n\nBug: 65168732\nTest: art/test/run-test ... --build-with-javac-dx --build-with-d8 611-checker-simplify-if\nChange-Id: I8831bc0ea4363e1e52cafcd0df83a85059761362\n"
    },
    {
      "commit": "6dd3e7a5958fb2d3bf2df220bbea048a6ca10094",
      "tree": "6903224c67d8b58095f2a67b5d754ba759fc0518",
      "parents": [
        "daf12303bdad792ac4b17b0a6f50bdacaf2a2068",
        "2ef3b88203961af0022540ea5893bfe91cab14b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 22:37:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 22:37:33 2017 +0000"
      },
      "message": "Merge \"Re-generate dex IR to verify dex file\""
    },
    {
      "commit": "daf12303bdad792ac4b17b0a6f50bdacaf2a2068",
      "tree": "69fd0b7535ed0c1ac5e67d6ee99be4189e0654a0",
      "parents": [
        "c2389ab1f3d75c308661260bbda57a69686d16d6",
        "d863be7a36bf2017958051fe1191ed47192085e8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 26 20:25:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 20:25:58 2017 +0000"
      },
      "message": "Merge \"ART: Move JniConstants::init from ART to libcore\""
    },
    {
      "commit": "c2389ab1f3d75c308661260bbda57a69686d16d6",
      "tree": "989aade76cd098c26bc407efbf87f60ff2497e09",
      "parents": [
        "df12b6fbd98883cc1714f731847b7628f2fb7f11",
        "0e151e7940edd31c1dc332d0b56fa9295f08c6f7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 26 20:22:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 20:22:34 2017 +0000"
      },
      "message": "Merge \"Add agent for printing breakpoints\""
    },
    {
      "commit": "0e151e7940edd31c1dc332d0b56fa9295f08c6f7",
      "tree": "3a91d116134dfae5695d19dffa23ae2210227da1",
      "parents": [
        "31275df5ea1b91ed668618d6ec64a76d67cee73c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 25 10:50:35 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 26 11:47:20 2017 -0700"
      },
      "message": "Add agent for printing breakpoints\n\nThis can be used to test performance of breakpointed code in a\nlightweight way or to ensure that code is reaching expected locations.\n\nSee tools/breakpoint-logger/README.md for information on how to use.\n\nAlso added the ability to pass explicit agents for run-test to load\nbefore running tests.\n\nTest: ./test/run-test                                                 \\\n        --host                                                        \\\n        --dev                                                         \\\n        --with-agent                                                  \\\n        \u0027libbreakpointlogger.so\u003dLMain;-\u003emain([Ljava/lang/String;)V@0\u0027 \\\n        001-HelloWorld\n\nBug: 68259370\n\nChange-Id: I409c940a34b1e823ec50649cdb3c51e5a81a09ab\n"
    },
    {
      "commit": "2ef3b88203961af0022540ea5893bfe91cab14b7",
      "tree": "da815b15e6cc68ba0b3a79f9b5cceffe8ee891a4",
      "parents": [
        "0aff0fffa828a1a1920a3db10599642b45b2c68e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 20 19:50:39 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 11:03:41 2017 -0700"
      },
      "message": "Re-generate dex IR to verify dex file\n\nInstead of using the existing IR, re-generate it to catch possible\nbugs writing the output dex.\n\nTest: test-art-host\nBug: 63756964\nChange-Id: Ib63f3137f5807ee5de1b05f8278137a3b3a3aee0\n"
    },
    {
      "commit": "ac64304a3a0f589c3136c477979824b620e73582",
      "tree": "830fda30d5d89b4290435549ef80de925a71f0b4",
      "parents": [
        "3e6c13997373efac343a65740da0c4f6e77338b9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Oct 26 11:00:03 2017 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Oct 26 11:00:03 2017 -0700"
      },
      "message": "Use -Werror in art/dexdump\n\nBug: 66996870\nTest: build with WITH_TIDY\u003d1\nChange-Id: Id4beb79988b99c865501d14b38b6c659f6cef03e\n"
    },
    {
      "commit": "df12b6fbd98883cc1714f731847b7628f2fb7f11",
      "tree": "ba4aef5d74821791cadb01e94af8833d7c985159",
      "parents": [
        "89ef026f70d9d5afc5ebddc490dbe0c508286e44",
        "c62b7ec6e47148049a2aa986a380dd6e58952d7a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 26 17:51:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 17:51:18 2017 +0000"
      },
      "message": "Merge \"Use HGraphDelegateVisitor instead of HGraphVisitor for lse.\""
    },
    {
      "commit": "89ef026f70d9d5afc5ebddc490dbe0c508286e44",
      "tree": "840283c9760d7f1c80bafab6953222f7f6009380",
      "parents": [
        "0aff0fffa828a1a1920a3db10599642b45b2c68e",
        "8c6c3575668831c752820ba4174b07ee407f7a4f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 26 17:47:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 17:47:21 2017 +0000"
      },
      "message": "Merge \"Make SIMD checker tests more robust.\""
    },
    {
      "commit": "0aff0fffa828a1a1920a3db10599642b45b2c68e",
      "tree": "74274532ab76718e8b97d36996af83408fcc865e",
      "parents": [
        "3e6c13997373efac343a65740da0c4f6e77338b9",
        "24066ec509949f777a4c6e61ef631de33bfdc28a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 16:43:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 16:43:45 2017 +0000"
      },
      "message": "Merge \"Re-enable dex verifier after dexlayout\""
    },
    {
      "commit": "24066ec509949f777a4c6e61ef631de33bfdc28a",
      "tree": "5620a9f0ef3f476ada8b1763a1854877d136f022",
      "parents": [
        "31275df5ea1b91ed668618d6ec64a76d67cee73c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Oct 21 16:01:08 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 09:35:02 2017 -0700"
      },
      "message": "Re-enable dex verifier after dexlayout\n\nDisabled class def ordering since it violates the spec regarding\nsuperclasses occurring before subclasses. This fixes a dex verifier\nfailure.\n\nAdjust the data section size based on string data and code item\ndiff. This fixes dex2oat_image_test failing dex file verification.\n\nFixed handling of unreference annotations. Previously, these would\nnot get written back out. This resulted the dex file verifier\nprematurely ending for annotations during CheckIntraSectionIterate\nand then complaining about non zero padding (that was actually an\nannotation).\n\nTest: test-art-host\nBug: 63756964\nBug: 68208404\n\nChange-Id: Id2b9b360640c360ac562826e9193971f7bb30eea\n"
    },
    {
      "commit": "1b79bbcdc1c9fee58cec0da6b19afd75d0bb47c9",
      "tree": "eece222b38346dd07a78c1783f92654140b91637",
      "parents": [
        "9041c606de11412a036bac2d2068d6f151a0fab7"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Oct 20 10:41:50 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Oct 26 16:18:45 2017 +0100"
      },
      "message": "Fix bugs with strong versus weak reference paths.\n\nThis fixes a few issues with strong versus weak reference paths:\n* It was possible to have a path from gc root with a root in the\n  middle of the path.\n* It was possible to have a path from gc root with a cycle, which\n  would cause ahat to go into an infinite loop.\n* It was still possible to have a path from gc root through weak\n  references when there existed other paths from gc root only through\n  strong references.\n\nBug: 64592321\n\nTest: m ahat-test, with new tests added.\nChange-Id: I2d3cc8c5a398aad24d70c3a428bdc3a470ddb3aa\n"
    },
    {
      "commit": "3e6c13997373efac343a65740da0c4f6e77338b9",
      "tree": "cb77105b96f532dcb07bc0db2b421f7fe785cee0",
      "parents": [
        "9041c606de11412a036bac2d2068d6f151a0fab7",
        "eb3c7644b91d985d084c564410af60583c908172"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 26 13:14:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 13:14:50 2017 +0000"
      },
      "message": "Merge \"ART: Remove workaround for bug 34659969.\""
    },
    {
      "commit": "e875f4c210ce0598e47b6d66ec12cd7c60208844",
      "tree": "c3836836ceafec0d881fd7c27a1438ab860cac0a",
      "parents": [
        "88a6296e13cae96157a451efa5776d1fecb05912"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 26 12:26:43 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 26 12:26:43 2017 +0100"
      },
      "message": "Don\u0027t verify dex file when the runtime is in NoVerify mode.\n\nbug: 30972906\nbug: 63920015\n\nTest: systrace of priv-app with OOB, no verification at startup\nChange-Id: I479a7ddcfa495228a379744b23c26fa8c91c3dde\n"
    },
    {
      "commit": "eb3c7644b91d985d084c564410af60583c908172",
      "tree": "a217e5b815a0d008897218dcffe510ba11cdcce7",
      "parents": [
        "6291ac84088ba32888d6b7d714f9965eeb82d345"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 24 15:13:36 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 26 12:26:34 2017 +0100"
      },
      "message": "ART: Remove workaround for bug 34659969.\n\nThe workaround is unnecessary since\n    https://android-review.googlesource.com/423760 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 34659969\nChange-Id: I47010ea95879457fdc6af6f9809a40ed209f8e38\n"
    },
    {
      "commit": "d863be7a36bf2017958051fe1191ed47192085e8",
      "tree": "528db45904a0bfac04bb96e38f9de63701fb8169",
      "parents": [
        "373a9b5c718a45ac484afcf4fe6ce84f4bb562b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 12 12:02:28 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 26 02:13:09 2017 +0000"
      },
      "message": "ART: Move JniConstants::init from ART to libcore\n\nThis should live with libcore. There\u0027s no deep magic in the runtime\nstartup.\n\nAlso remove dependency on libnativehelper shared library.\n\nBug: 65522645\nTest: m\nTest: m test-art-host\nTest: Device boots (bullhead)\nChange-Id: I6d03144fa02461d31e9e26c27cdb3a9a9510122d\n"
    },
    {
      "commit": "9041c606de11412a036bac2d2068d6f151a0fab7",
      "tree": "52a3e78fa8bc94a76674caaae837c728332d05dc",
      "parents": [
        "31275df5ea1b91ed668618d6ec64a76d67cee73c",
        "373a9b5c718a45ac484afcf4fe6ce84f4bb562b3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 26 02:10:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 02:10:03 2017 +0000"
      },
      "message": "Merge changes I53dd3b2a,I019f1811\n\n* changes:\n  ART: Depend on libnativehelper headers only\n  ART: Do not depend on libnativehelper - toStringArray\n"
    },
    {
      "commit": "c62b7ec6e47148049a2aa986a380dd6e58952d7a",
      "tree": "d4e1b648765fc3e924e84e98c85cf010dec611d2",
      "parents": [
        "6479e488e627c0e470e2068422316f6966d254f5"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 25 16:42:15 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 25 16:48:14 2017 -0700"
      },
      "message": "Use HGraphDelegateVisitor instead of HGraphVisitor for lse.\n\nThis consolidates all VisitInvokeXXX to a single VisitInvoke.\n\nTest: run-test on host.\nChange-Id: I9b4a2ddbc054cdcf60a2e4ab7e28ea2d8e02b902\n"
    }
  ],
  "next": "8c6c3575668831c752820ba4174b07ee407f7a4f"
}
