)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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\""
    },
    {
      "commit": "b9bc47f0e24580a9dfafec830c709842b71aef89",
      "tree": "231b1ef07a5ac0333d471438d9d4d1facd640311",
      "parents": [
        "bbf33111444f1c7665eb6ad21438f2ca97cd488e",
        "ae02d2e2b754f5a7ca2c4dcc869cf5934f88555e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 17:26:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 17:26:20 2016 +0000"
      },
      "message": "Merge \"libopenjdkjvmti is actually not a test library.\""
    },
    {
      "commit": "25dcbad4462ea7279ee2bbe0884abc25bdfac77a",
      "tree": "f8f8db090bf6735ead2c6999b7b574f4b7278056",
      "parents": [
        "dd77c2b4ff36db082edfbcf2631c78a9282689e1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 13:35:26 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 17:01:16 2016 +0000"
      },
      "message": "Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\n\nFix jdwp getting multiple instances of the same class.\nFix counting \"zygote\"/\"non-zygote\" classes in class table.\nFix FindClass() to EnsureResolved() classes added by\na racing thread to the class table.\n\nTest: m test-art-host\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug\nBug: 30627598\n\nThis reverts commit ecffc67068a28d55d131553bf915fdb9fafbbc03.\n\nChange-Id: I15807949da4f163c2693fac2fbfc274f17685f8a\n"
    },
    {
      "commit": "ab52ce1480d9c4701bfe3ff3530596ec0c5760ee",
      "tree": "e1966edd05b7e7ca8e0e90ea2c2b90b3b9d10a32",
      "parents": [
        "bbf33111444f1c7665eb6ad21438f2ca97cd488e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 11 11:11:31 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 23 16:56:15 2016 +0000"
      },
      "message": "Method Handles: Add VarargsCollector.\n\nEnable support for methods with variable arity arguments.\n\nTest: m test-art-host-run-test-956-methodhandles\nBug: 30550796\n\nChange-Id: I205724ddacc6c9840e18093a3984c1ad6e54394a\n"
    },
    {
      "commit": "ae02d2e2b754f5a7ca2c4dcc869cf5934f88555e",
      "tree": "231b1ef07a5ac0333d471438d9d4d1facd640311",
      "parents": [
        "bbf33111444f1c7665eb6ad21438f2ca97cd488e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 16:25:15 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 16:25:15 2016 +0000"
      },
      "message": "libopenjdkjvmti is actually not a test library.\n\nUse the right target for the libopenjdkjvmti library.\n\nTest: test-art-target-sync\nChange-Id: I8c23c87911bc890482e5e9be3d64ce0a362b6924\n"
    },
    {
      "commit": "bbf33111444f1c7665eb6ad21438f2ca97cd488e",
      "tree": "a93fcd7a973d0fd2b5dd7619858ca1e84a96408d",
      "parents": [
        "dd77c2b4ff36db082edfbcf2631c78a9282689e1",
        "e424c93c767dae47aa9dc02c99ee0aa63b2c072b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 14:23:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 14:23:06 2016 +0000"
      },
      "message": "Merge \"Update expectations in SetVerifierDeps/SetStackSample.\""
    },
    {
      "commit": "dd77c2b4ff36db082edfbcf2631c78a9282689e1",
      "tree": "c0276a06f8b6dba35e843098a05be326c8f5e2ac",
      "parents": [
        "8f26b1039a76e5112ef835798526fcd002f0900e",
        "ea7980d7617c934d1858dcb27eb6f1e5bdbab261"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 23 12:53:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 12:53:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Use interpret-only instead of verify-at-runtime when testing JIT\"\""
    },
    {
      "commit": "ea7980d7617c934d1858dcb27eb6f1e5bdbab261",
      "tree": "8b18d527d590d0c3c4264a6245d09f6dd56f981a",
      "parents": [
        "8b2cf761df20e60a9e0e57564db3ab4eae5d64a7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 23 12:52:53 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 23 12:52:53 2016 +0000"
      },
      "message": "Revert \"Use interpret-only instead of verify-at-runtime when testing JIT\"\n\nThis reverts commit 8b2cf761df20e60a9e0e57564db3ab4eae5d64a7.\n\nChange-Id: I3a15a20eb9d3c71902f42cd5e559d8ab4e15f07d\n"
    },
    {
      "commit": "e424c93c767dae47aa9dc02c99ee0aa63b2c072b",
      "tree": "c8ef0d76ab0b093476a25254bb83c6d1c730abbe",
      "parents": [
        "71601907b95a3527fc554a3a1724b3c12b872a7a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 12:52:01 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 12:52:01 2016 +0000"
      },
      "message": "Update expectations in SetVerifierDeps/SetStackSample.\n\nSetStackSample might update an existing sample. So instead\ncheck that SetStackSample is only called in non-AOT mode, and\nSetVerifierDeps is only called in AOT mode.\n\nTest: 099-vmdebug\nChange-Id: I80dc3d61da651fb311364418802b0bb7e1ce9351\n"
    },
    {
      "commit": "8f26b1039a76e5112ef835798526fcd002f0900e",
      "tree": "ac3325b1b06a6d2774d0bf7f7f2148d9e777d580",
      "parents": [
        "71601907b95a3527fc554a3a1724b3c12b872a7a",
        "d026ee554b2604e7fdc9b5f65660202a386a6f00"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 12:35:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 12:35:43 2016 +0000"
      },
      "message": "Merge \"Update run-test dependencies on device.\""
    },
    {
      "commit": "d026ee554b2604e7fdc9b5f65660202a386a6f00",
      "tree": "689c55839b832ab5f3104163e1690b8a55a4ae74",
      "parents": [
        "f215c5255ce817e3baca7d71f8de72001f6dfbcd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 10:47:02 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 23 10:47:02 2016 +0000"
      },
      "message": "Update run-test dependencies on device.\n\nTest: test-art-target\nChange-Id: I5f58bcbf9eb41571d9511eba8b3f11765baf24a2\n"
    },
    {
      "commit": "71601907b95a3527fc554a3a1724b3c12b872a7a",
      "tree": "bfe7b98d5360364dc8ff13187bed0143f97650ad",
      "parents": [
        "f215c5255ce817e3baca7d71f8de72001f6dfbcd",
        "7f07f5528be20b11f9bfc4010477ebf8bdfa33ab"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 23 10:33:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 10:33:04 2016 +0000"
      },
      "message": "Merge \"Fix build rules for statically linked oatdump on host.\""
    },
    {
      "commit": "fc2dd6110c7ce5fc272836d1a7e48f3b40612c2d",
      "tree": "c61e6b98d487e4dccf4c66d755982cc9160ca345",
      "parents": [
        "0e5e9fd33521d0f9a2cc6551cb77b4b196e82082"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 21 15:05:23 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 16:49:21 2016 -0800"
      },
      "message": "Speed up verified methods\n\nSwitch to an array of atomic pointers instead of a map. Removes lock\nand map lookup. Also address comments from previous CL.\n\nGetVerifiedMethod: 1.59% -\u003e 0.18% of compilation time.\n\nInstall time seems to goes down by around 1%.\n\nAlso has significant RAM savings (FB host compile):\ndex2oat native alloc: 84695472B -\u003e 71268736B\n\nFor the JIT case, the old method is used to prevent any increase in\nRAM usage.\n\nBug: 32641252\n\nTest: test-art-host\nChange-Id: I47b4b8a4a3cb3f8ef23e36a888b8885e12168787\n"
    },
    {
      "commit": "f215c5255ce817e3baca7d71f8de72001f6dfbcd",
      "tree": "dd664dbbdc616a66cb9495a6b428b47ac6079611",
      "parents": [
        "47d840bcf9b2fe323f54f55dd3c675f9ec59c6a3",
        "042e898f18767ed326980e3b07d39adbf98f6222"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 23:49:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 23:49:20 2016 +0000"
      },
      "message": "Merge changes from topic \u0027dex2oat_dexlayout\u0027\n\n* changes:\n  Add layout scheme to dexlayout for dex file reordering.\n  Add new --layout-profile compiler-filter for dex2oat.\n  Dexlayout cleanup and refactoring.\n"
    },
    {
      "commit": "47d840bcf9b2fe323f54f55dd3c675f9ec59c6a3",
      "tree": "318a5ea2d5d78b21790e6971771ffb6c7c67739c",
      "parents": [
        "0e5e9fd33521d0f9a2cc6551cb77b4b196e82082",
        "7a704bea1b1ff1e7deb903513997e0f35040287b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 23:09:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 23:09:48 2016 +0000"
      },
      "message": "Merge \"Always fill in root table length\""
    },
    {
      "commit": "042e898f18767ed326980e3b07d39adbf98f6222",
      "tree": "e2ea81bc5ddbab51cb3d5c0d5b7812cf9f85562e",
      "parents": [
        "608f2ce4b9870354079b9d63d40363914889f01a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 19 11:17:11 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 13:33:09 2016 -0800"
      },
      "message": "Add layout scheme to dexlayout for dex file reordering.\n\nCurrently takes startup classes from profile and groups them together\nwith the lowest class indexes. Moves the ClassDef, ClassData, and\nCodeItem sections.\n\nResults gathered from 5 second systrace of app startup (no other input):\nMaps\nbase.vdex - 24.70MB -\u003e 19.35MB (30.50MB file size)\nbase.odex - 13.22MB -\u003e 12.82MB (13.22MB file size)\nRunning time of dex2oat: 27.5s -\u003e 37.1s\n\nPhotos\nbase.vdex - 12.98MB -\u003e  9.77MB (15.10MB file size)\nbase.odex -  6.84MB -\u003e  6.24MB ( 6.84MB file size)\nRunning time of dex2oat: 15.6s -\u003e 19.9s\n\nPlus\nbase.vdex - 14.09MB -\u003e 13.29MB (16.72MB file size)\nbase.odex -  2.47MB -\u003e  2.47MB ( 2.47MB file size)\nRunning time of dex2oat: 14.1s -\u003e 18.5s\n\nPerformance and memory tracking bug: b/33017139\n\nTest: mm test-art-host-gtest-dexlayout_test\nBug: 29921113\nChange-Id: Ib500ed353d71a606e2db0dd80378750c5f7b8e33\n"
    },
    {
      "commit": "7a704bea1b1ff1e7deb903513997e0f35040287b",
      "tree": "e94262da7f17cc3ffd4e7a8df337cbd96f62da0b",
      "parents": [
        "c394d0558de9afff6ab8b87ae9706497e01f37ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 13:24:40 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 13:30:47 2016 -0800"
      },
      "message": "Always fill in root table length\n\nOtherwise, there may be DCHECK failure in JitCodeCache::ClearData.\nFixes gcstress JIT tests.\n\nTest: test/run-test --host --relocate --prebuild  --64 --jit --gcstress --dev 021-string2\n\nChange-Id: I757ccd1e5a015c5e686254417a2a3f68b650da1c\n"
    },
    {
      "commit": "0e5e9fd33521d0f9a2cc6551cb77b4b196e82082",
      "tree": "9b85992de284e8e48f20d8eab3867f2175c1e6a2",
      "parents": [
        "f05ccaf2cc9882e8b2d0add30072fd2648bea88d",
        "28e74eda7dc2fa3139f09bb334901e33ef34b66e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 22 20:30:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 20:30:12 2016 +0000"
      },
      "message": "Merge \"Verify for type_id out of range errors\""
    },
    {
      "commit": "f05ccaf2cc9882e8b2d0add30072fd2648bea88d",
      "tree": "c92854218ee522a99c298d6f32a45327c14626dc",
      "parents": [
        "c394d0558de9afff6ab8b87ae9706497e01f37ff",
        "6f4d102e0c3029b3c74af13d3846a14e1c878a12"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 19:26:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 19:26:10 2016 +0000"
      },
      "message": "Merge \"Correctly handle EINTR return from futex\""
    },
    {
      "commit": "28e74eda7dc2fa3139f09bb334901e33ef34b66e",
      "tree": "ba79b6296f07da180cb54e0b946670bf5f821b4e",
      "parents": [
        "701bb7d1d750850b41b26c75255e1829efb4860e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Nov 21 12:52:12 2016 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Nov 22 10:44:35 2016 -0800"
      },
      "message": "Verify for type_id out of range errors\n\nThe dalvik documentation states that several fields used as type ids are\nuint, which is 32 bits.  Other places use uint16, which is obviously 16.\nThis adds assertions that there are fewer than 65536\nclass_def_items/class_data_items and that the fields in question are\neither valid (0 \u003c\u003d id \u003c\u003d 0xffff) or id \u003d\u003d kDexNoIndex (0xffffffff).\n\nTest: m test-art-host\nChange-Id: I584615192086e6d8bb30aa11217d569d6dbe1280\n"
    },
    {
      "commit": "c394d0558de9afff6ab8b87ae9706497e01f37ff",
      "tree": "3f63982d609fa01a5b271b5f393ee9c6d83e1107",
      "parents": [
        "b46782abf6752ccf688b0d9f5b4bb83e5d33793b",
        "ecffc67068a28d55d131553bf915fdb9fafbbc03"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:49:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 17:49:06 2016 +0000"
      },
      "message": "Merge \"Revert \"Make sure that const-class linkage is preserved.\"\""
    },
    {
      "commit": "ecffc67068a28d55d131553bf915fdb9fafbbc03",
      "tree": "3f63982d609fa01a5b271b5f393ee9c6d83e1107",
      "parents": [
        "b46782abf6752ccf688b0d9f5b4bb83e5d33793b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:37:21 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:41:49 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved.\"\n\nBug: 30627598\n\nThis reverts commit 19886dbeced9430579a27979beb92b09c95197b4.\nSquashed reverts of subsequent partial fixes.\n    This reverts commit bad475a63b7c938b7ff7903ea1dae27369c3f629.\n    This reverts commit 0ba0c7d9b0328af39a385014652eb9af4e42d8b5.\n    This reverts commit ddb8afec79492750f16f98e5bd07d44f3dc485d4.\n\nChange-Id: Id94af5ae56a0335f9641a79c885cc75bba971713\n"
    },
    {
      "commit": "7f07f5528be20b11f9bfc4010477ebf8bdfa33ab",
      "tree": "40645c302325982c0fc1e699e2bda6667734cbe0",
      "parents": [
        "da2d78ba97d177b80e0e9528362bcebc1fd31f0f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 22 17:20:46 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 22 17:20:46 2016 +0000"
      },
      "message": "Fix build rules for statically linked oatdump on host.\n\nTest: m build-art-host\nTest: m test-art-host-gtest-oatdump_test\nBug: 29530992\nChange-Id: Iaa1ff13f0d42e5bc9670fc87da5b6e291482f626\n"
    },
    {
      "commit": "608f2ce4b9870354079b9d63d40363914889f01a",
      "tree": "8b09e660646a63296b76d83877b725fdce7e3b56",
      "parents": [
        "ea7c62983beec6a5a2a6676cc910a436b20ae92c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 19 11:17:11 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 09:12:14 2016 -0800"
      },
      "message": "Add new --layout-profile compiler-filter for dex2oat.\n\nNew compiler filter makes dex2oat call into dexlayout.\nAdded basic test for --layout-profile filter to make sure dex2oat runs\nto completion and file is valid. Contests of file are not checked.\n\nTest: mm test-art-host-gtest-dexlayout_test\nBug: 29921113\nChange-Id: I4bd0dea3d3f1284c155d1d9dea80a48062e67770\n"
    },
    {
      "commit": "ea7c62983beec6a5a2a6676cc910a436b20ae92c",
      "tree": "cc41732efa47b2301f463f2f9fcabe957ed89c0c",
      "parents": [
        "b46782abf6752ccf688b0d9f5b4bb83e5d33793b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 14 18:10:16 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 09:12:14 2016 -0800"
      },
      "message": "Dexlayout cleanup and refactoring.\n\nCreated option to output to a mem map in preparation of hooking\ndexlayout into dex2oat.\n\nTest: mm test-art-host-gtest-dexlayout_test\nBug: 29921113\nChange-Id: Id42ef15cb8f83cc8d05b025b7647a4338e9b96b0\n"
    },
    {
      "commit": "b46782abf6752ccf688b0d9f5b4bb83e5d33793b",
      "tree": "0e0a2434b6b68dab04c06e479c82610b8cce227a",
      "parents": [
        "24a56c620774c6f7bb2ef408895b9a48fe7ab4af",
        "340dafabc8e88378e395cda9027cf17726910e91"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 17:07:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 17:07:47 2016 +0000"
      },
      "message": "Merge \"Use a per-thread VerifierDeps.\""
    },
    {
      "commit": "24a56c620774c6f7bb2ef408895b9a48fe7ab4af",
      "tree": "f304f51ecb16e9c92116afc28030d18cfaca296a",
      "parents": [
        "701bb7d1d750850b41b26c75255e1829efb4860e",
        "f46501c6ad11025843682267c10f221323a206b1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 16:40:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 16:40:21 2016 +0000"
      },
      "message": "Merge \"Clear the right data pointer.\""
    },
    {
      "commit": "701bb7d1d750850b41b26c75255e1829efb4860e",
      "tree": "dc98891e1a3288d1bfd4ff558a2681b0e066abe5",
      "parents": [
        "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3",
        "ddb8afec79492750f16f98e5bd07d44f3dc485d4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 14:58:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 14:58:42 2016 +0000"
      },
      "message": "Merge changes If9d1da45,I6daecb52\n\n* changes:\n  Do not test class unloading in 626-const-class-linking\n  Fix 626-const-class-linking for no-dex2oat configuration.\n"
    },
    {
      "commit": "ddb8afec79492750f16f98e5bd07d44f3dc485d4",
      "tree": "002f092e054a3c53deccd55a972f53dfe58a1d0c",
      "parents": [
        "0ba0c7d9b0328af39a385014652eb9af4e42d8b5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 14:38:31 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 14:42:49 2016 +0000"
      },
      "message": "Do not test class unloading in 626-const-class-linking\n\nKeep tests that classes were not unloaded but do not test\nthat they are actually unloaded. Both JIT and tracing can\nhold onto those classes.\n\nTest: m ART_USE_JIT\u003dtrue test-art-host-run-test-626-const-class-linking\nTest: m ART_TEST_TRACE\u003dtrue test-art-host-run-test-626-const-class-linking\nBug: 30627598\nChange-Id: If9d1da45d8691c5ee05b6cf500d7d132bcab611f\n"
    },
    {
      "commit": "f46501c6ad11025843682267c10f221323a206b1",
      "tree": "a5b77de81f5ab31e66082b02b225e7fe56877f98",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 13:45:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:21:31 2016 +0000"
      },
      "message": "Clear the right data pointer.\n\nInternally, stack_map_data is an offset of the roots_data allocation.\nPass both to the ClearData method, which will use the right pointer\nto deallocate.\n\nTest: test-art-host in debug mode\nChange-Id: Ibfe38e7f1853870076048427f2efe7121c11c136\n"
    },
    {
      "commit": "0ba0c7d9b0328af39a385014652eb9af4e42d8b5",
      "tree": "7092bb3d3cf82dfa6b7167622149faab31c7c2a3",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 13:18:00 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 13:20:27 2016 +0000"
      },
      "message": "Fix 626-const-class-linking for no-dex2oat configuration.\n\nFor this configuration, the MisbehavingLoader.loadClass()\nis called twice, so we cannot rely on printing the message\nexactly once.\n\nTest: m ART_TEST_RUN_TEST_NO_DEX2OAT\u003dtrue \\\n      test-art-host-run-test-626-const-class-linking\nBug: 30627598\nChange-Id: I6daecb52efc1d25fc5cf796f8aef726666e97c8b\n"
    },
    {
      "commit": "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3",
      "tree": "3e7affe083ccc71eb05546af3440fbaefd380000",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0",
        "b88c484affe83b59c73dbd00855cb28754e041a2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 13:18:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 13:18:56 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix the assembler usage in the intrinsics.\""
    },
    {
      "commit": "340dafabc8e88378e395cda9027cf17726910e91",
      "tree": "f742cfc9b9eb3fdf0245a66491d39fb841da7c01",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 16:03:10 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 13:08:29 2016 +0000"
      },
      "message": "Use a per-thread VerifierDeps.\n\nAvoid lock contention on a singleton VerifierDeps by allocating\ntemporary per-thread VerifierDeps that get merged after verification.\n\nThis saves around ~35% compile-times on interpret-only.\n\nOnly the creation of extra strings is guarded by a lock, for simplicity.\n\nTest: test-art-host, test-art-target\nbug: 32641252\nbug: 30937355\n\nChange-Id: I11a2367da882b58e39afa7b42cba2e74a209b75d\n"
    },
    {
      "commit": "71d15102b52af67e8fe1193192aa2b4cd1956ae0",
      "tree": "7e30d48ddf0a329e821171ea5a028d70bfda54a9",
      "parents": [
        "9ee5fdf92f498d716c740cc1770943097f968092",
        "bad475a63b7c938b7ff7903ea1dae27369c3f629"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 12:12:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 12:12:12 2016 +0000"
      },
      "message": "Merge \"Fix build: update test to use dex::TypeIndex.\""
    },
    {
      "commit": "bad475a63b7c938b7ff7903ea1dae27369c3f629",
      "tree": "7e30d48ddf0a329e821171ea5a028d70bfda54a9",
      "parents": [
        "9ee5fdf92f498d716c740cc1770943097f968092"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 11:56:48 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 11:56:48 2016 +0000"
      },
      "message": "Fix build: update test to use dex::TypeIndex.\n\nTest: m test-art-host\nBug: 30627598\nChange-Id: I1aad84c6367b7b60b60391488aeb9777d3a627e4\n"
    },
    {
      "commit": "9ee5fdf92f498d716c740cc1770943097f968092",
      "tree": "a1d7a4cb0a86500850d7eb96f5f2eb2bef90c487",
      "parents": [
        "da2d78ba97d177b80e0e9528362bcebc1fd31f0f",
        "19886dbeced9430579a27979beb92b09c95197b4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 11:23:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 11:23:16 2016 +0000"
      },
      "message": "Merge \"Make sure that const-class linkage is preserved.\""
    },
    {
      "commit": "6f4d102e0c3029b3c74af13d3846a14e1c878a12",
      "tree": "18ad351a86cabf94c2bb7f4f8b9dff9d0ec7c59a",
      "parents": [
        "da2d78ba97d177b80e0e9528362bcebc1fd31f0f"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Mon Nov 21 14:35:42 2016 -0800"
      },
      "committer": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Mon Nov 21 15:44:06 2016 -0800"
      },
      "message": "Correctly handle EINTR return from futex\n\nWe should handle EINTR the same way we do EAGAIN: they\u0027re both\ntransient failures. Either way, higher-level code (see\nReaderWriterMutex::SharedLock) will do the right thing, loop around,\nand try again.\n\nTest: code inspection\nChange-Id: I1eb7fb6851cc1a65acc9a0cf7cbeef787b6b28b6\n"
    },
    {
      "commit": "da2d78ba97d177b80e0e9528362bcebc1fd31f0f",
      "tree": "7316d4a29215b03095684c26bb08bfe484f2d903",
      "parents": [
        "668ba83a0a1c0d952e1f310f6332131d9dccc8be",
        "32b50302d9826430013e008b45d5c71e6b7a2469"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 21 23:32:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 23:32:46 2016 +0000"
      },
      "message": "Merge \"Check same dex file for finding class descriptor string id\""
    },
    {
      "commit": "668ba83a0a1c0d952e1f310f6332131d9dccc8be",
      "tree": "b87dad782d2a43ca2bfc16ec904e1667db114547",
      "parents": [
        "a598b869b255b4daeaa34d1dd0939222a3a791b7",
        "93c3090f39a99cce8ee063522746df2a254c4398"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 21 22:01:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 22:01:14 2016 +0000"
      },
      "message": "Merge changes I8e51415a,I79a255c1\n\n* changes:\n  ART: Add JNI local details for FollowReferences\n  ART: Fix generic_ptr handling in GetMethodName\n"
    },
    {
      "commit": "32b50302d9826430013e008b45d5c71e6b7a2469",
      "tree": "210a7c575cc246787afdbbd988a45c8f38b8b169",
      "parents": [
        "a598b869b255b4daeaa34d1dd0939222a3a791b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 17 13:08:35 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 21 13:28:23 2016 -0800"
      },
      "message": "Check same dex file for finding class descriptor string id\n\nUse ClassDef for finding same dex file class descriptor string id\nfor vdex. Removes some calls to FindStringId, the remaining calls to\nFindStringId are due to multidex or referring to types in the boot\nclass path.\n\nAlso check method index slot to see if we get lucky.\n\nHost perf:\nDexFile::FindStringId: 2.57% -\u003e 0.94%\n\nNot done for fields since these do not seem to reach the FindStringId\ncase accordingto perf. The remaining calls to FindStringId come from:\n100.00% verifier::VerifierDeps::GetClassDescriptorStringId\n-\u003e 66.62% verifier::VerifierDeps::AddAssignability\n-\u003e 33.38% verifier::VerifierDeps::AddMethodResolution\n\nFB install time: 35.54s -\u003e 34.41s (avg of 40 samples at 960MHZ N6P).\n\nBug: 32641252\n\nTest: test-art-host\n\nChange-Id: If50408cf1be5c2d2127140780b8d5af66306939c\n"
    },
    {
      "commit": "a598b869b255b4daeaa34d1dd0939222a3a791b7",
      "tree": "5af89e57aaa81cabbee54c924a9319814c39a81d",
      "parents": [
        "b2dc55149665fa288d44136642a6814a3a5a74a4",
        "a5b09a67034e57a6e10231dd4bd92f4cb50b824c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 21 21:17:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 21:17:32 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::TypeIndex\""
    },
    {
      "commit": "b2dc55149665fa288d44136642a6814a3a5a74a4",
      "tree": "074ff9d91a2653b633de66133b19d91536e65e49",
      "parents": [
        "e38f0320dfb708272269ef53fd61b9be13b7bc98",
        "22f71d215679955372d8e24db3771fc7173dccb5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 21 20:43:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 20:43:12 2016 +0000"
      },
      "message": "Merge \"ART: Add boot classpath check for initialization\""
    },
    {
      "commit": "e38f0320dfb708272269ef53fd61b9be13b7bc98",
      "tree": "c032c5a0c74ca5c14d0b7d8bf17f3b6b254d6140",
      "parents": [
        "bb4366d2b0b56f2cc66041243bd93de4b8e4d15a",
        "1b868498a176705b867e2572cc1bcbd58dbd62d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 21 20:19:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 20:19:59 2016 +0000"
      },
      "message": "Merge \"Use type lookup tables in compiler\""
    },
    {
      "commit": "b88c484affe83b59c73dbd00855cb28754e041a2",
      "tree": "5b20e66eec70ad325544d80fd456f975a285ed3e",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Nov 14 14:37:00 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Nov 21 20:11:54 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix the assembler usage in the intrinsics.\n\nThe assembler must not be used outside of any scopes;\nthe macroassembler methods should be called instead.\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: I1358bea5330547db9b7a8446932d85ba946e5683\n"
    },
    {
      "commit": "19886dbeced9430579a27979beb92b09c95197b4",
      "tree": "33c85aada415308d8207d63bce903262ea7504fe",
      "parents": [
        "bb4366d2b0b56f2cc66041243bd93de4b8e4d15a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 11 11:40:40 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 21 19:11:31 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved.\n\nAfter calling loadClass() on the initiating loader, insert\nthe Class to the ClassTable. Check that the returned class\nhas the correct name and that the ClassTable does not yet\ncontain a different Class for the same name. If either check\nfails, follow the RI behavior for parallel capable class\nloaders, i.e. throw NoClassDefFoundError for name mismatch\n(with more descriptive message than RI) or return the Class\nalready present in the ClassTable. This ensures that the\nconst-class instruction for a given name always gives the\nsame result as the first time it succeeded for the same\ninitiating loader, even for non-well-behaved loader.\n\nInserting the Class to the ClassTable is also a necessary\nstep for changing to hash-based dex cache type array when\nthe DexCache will not necessarily keep the Class and\ntherefore the defining loader alive while the initiating\nloader stays alive, so the ClassTable entry is necessary\nto keep the dependecy.\n\nAdd tests that a const-class instruction always returns the\nsame Class\u003c?\u003e as it returned the first time, i.e. when it\nwas \"linked\", even for class loaders that are not\nwell-behaved, even if the dex cache type array is cleared.\nAlso test the edge cases, i.e. NoClassDefFoundError and\nreturning old entry from ClassTable when already inserted\nby another thread.\n\nBug: 30627598\nTest: 626-const-class-linking\nTest: m test-art-host\nChange-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8\n"
    },
    {
      "commit": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "22f71d215679955372d8e24db3771fc7173dccb5",
      "tree": "606cb89aa61b2a2c26dd80a3c47014178388d5f0",
      "parents": [
        "bb4366d2b0b56f2cc66041243bd93de4b8e4d15a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:10:08 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:49:58 2016 -0800"
      },
      "message": "ART: Add boot classpath check for initialization\n\nBoot classpath classes should not fail initialization.\n\nTest: m test-art-host\nChange-Id: I48af3ab6ab3d5c2589b804df8f4585f5a81ea169\n"
    },
    {
      "commit": "1b868498a176705b867e2572cc1bcbd58dbd62d6",
      "tree": "36e10d1cff265d54090571ab08ad2ae9ebda97c1",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 16:22:37 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 21 10:05:03 2016 -0800"
      },
      "message": "Use type lookup tables in compiler\n\nThis recently regressed and stopped happening, the fix creates fake\nOatDexFiles so that the compiler uses the type lookup tables instead\nof slow FindClassDef and FindTypeId.\n\nPerf on host compile Facebook:\nBefore:\n2.49%: art::DexFile::FindClassDef(unsigned short) const\n1.59%: art::DexFile::FindTypeId(char const*) const\n\nAfter:\n0.42%: art::OatDexFile::FindClassDef(art::DexFile const\u0026, char const*, unsigned long)\n0%: art::DexFile::FindTypeId(char const*) const\n0%: art::DexFile::FindClassDef(unsigned short) const\n\nAverage install (N6P 960 mhz average of 40 samples): 38.2s -\u003e 35.64s\n\nBug: 32641252\n\nTest: test-art-host, adb install.\n\nChange-Id: I34df21dc2c155bc2579c5cafdd91f9cb0fead1a9\n"
    },
    {
      "commit": "bb4366d2b0b56f2cc66041243bd93de4b8e4d15a",
      "tree": "55f0a91f873c438d6c45c71689cb09494c94c8f6",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34",
        "cca340b452baae0eb1fe37959063b63256bbef3b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 21 17:38:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 17:38:15 2016 +0000"
      },
      "message": "Merge \"ART: Fix line break in Throwable::Dump\""
    },
    {
      "commit": "dac7ad17c78387d15d7aefae0f852dddf5f37e34",
      "tree": "603b3ca74ba9144d217497417314fe863e2201ef",
      "parents": [
        "af524438b8a76264a23ec2d748e11eeded02abc7",
        "132d8363bf8cb043d910836672192ec8c36649b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:14:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 10:14:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\""
    },
    {
      "commit": "af524438b8a76264a23ec2d748e11eeded02abc7",
      "tree": "f202c1fe8aa1ae1a8b4f3d609ad4a011f7ffca4b",
      "parents": [
        "ab07cbe238fc41cc074bd2af87a0b3fcdddedf27",
        "f8f36c246ee46522a7446e6f3a155e0fc5c7b859"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Nov 20 00:37:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Nov 20 00:37:57 2016 +0000"
      },
      "message": "Merge changes I240f8bb7,I27defaa7,Ib82d64cc\n\n* changes:\n  ART: Do not DCHECK in verifier when already aborting\n  ART: Add debug exception check to JIT\n  ART: Extend DumpRecursiveAbort\n"
    },
    {
      "commit": "cca340b452baae0eb1fe37959063b63256bbef3b",
      "tree": "7fe99930aff2899be156f1dfd7de48ef774ee5be",
      "parents": [
        "f8f36c246ee46522a7446e6f3a155e0fc5c7b859"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:43:05 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Nov 19 14:58:02 2016 -0800"
      },
      "message": "ART: Fix line break in Throwable::Dump\n\nAdd line breaks for missing stack traces.\n\nTest: m test-art-host\nChange-Id: I0624ed19d6d025b7c00d6e6fb55827577bffc7b6\n"
    },
    {
      "commit": "f8f36c246ee46522a7446e6f3a155e0fc5c7b859",
      "tree": "f202c1fe8aa1ae1a8b4f3d609ad4a011f7ffca4b",
      "parents": [
        "320ba91911c840528893e07b0af43d317cd4c9aa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Nov 19 14:51:52 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Nov 19 14:57:56 2016 -0800"
      },
      "message": "ART: Do not DCHECK in verifier when already aborting\n\nOnly log an error in FailOrAbort in the debug build when the\nruntime is already aborting.\n\nTest: m test-art-host\nChange-Id: I240f8bb7695e42d60b5805ebae2ab9dc72e5fdb1\n"
    },
    {
      "commit": "320ba91911c840528893e07b0af43d317cd4c9aa",
      "tree": "486ea2599d6f141d1887bdb55b2dd235d589b7f7",
      "parents": [
        "9fd470f87342dfe974c8ec8c74239a547e768650"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:39:45 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:42:58 2016 -0800"
      },
      "message": "ART: Add debug exception check to JIT\n\nCheck for a pending exception after JIT compilation finishes.\n\nTest: m ART_TEST_JIT\u003dtrue test-art-host\nChange-Id: I27defaa733f360cb1dbabede62d4908777bc5d2b\n"
    },
    {
      "commit": "9fd470f87342dfe974c8ec8c74239a547e768650",
      "tree": "9bacb890f1e8c56bee6db335c046ce9e63b6ad08",
      "parents": [
        "ab07cbe238fc41cc074bd2af87a0b3fcdddedf27"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:21:12 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:42:58 2016 -0800"
      },
      "message": "ART: Extend DumpRecursiveAbort\n\nAccept recursive dump request for deeper recursions. Otherwise,\ntwo or more threads aborting concurrently would ensure that there\nare no dumps.\n\nTest: m test-art-host\nChange-Id: Ib82d64cceba0de89e352d9b15bcd5708db82498c\n"
    },
    {
      "commit": "ab07cbe238fc41cc074bd2af87a0b3fcdddedf27",
      "tree": "0895bf5691ad5013435192bb734777ce30024292",
      "parents": [
        "3bf14d69ab1823ae3e3ff372ac04a404044c3682",
        "1013bdeacffb39b160a6a9e4ea4027930c955e7a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 19 01:07:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 19 01:07:36 2016 +0000"
      },
      "message": "Merge \"Fix valgrind issue with thread_pool_test.\""
    },
    {
      "commit": "1013bdeacffb39b160a6a9e4ea4027930c955e7a",
      "tree": "0895bf5691ad5013435192bb734777ce30024292",
      "parents": [
        "3bf14d69ab1823ae3e3ff372ac04a404044c3682"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 15:06:21 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 15:06:21 2016 -0800"
      },
      "message": "Fix valgrind issue with thread_pool_test.\n\nMake sure the task list is empty at the end of the test. Follow-up\nto commit e2fc98e88106b9cfa44eeacc6765c291feda04a8.\n\nTest: m test-art-host-gtest-thread_pool_test\nTest: m valgrind-test-art-host-gtest-thread_pool_test\nChange-Id: Ib41a1f7dde9d45f1195e18ff6db4241fb7dc7428\n"
    },
    {
      "commit": "93c3090f39a99cce8ee063522746df2a254c4398",
      "tree": "44c99fe3cfbcb2f510dea033f674b99b47833a06",
      "parents": [
        "862bdd8ac9bc0071493acaf3574610cbc7792bbf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 13:30:30 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 15:02:34 2016 -0800"
      },
      "message": "ART: Add JNI local details for FollowReferences\n\nGive details for the thread.\n\nStack depth and method are currently approximated (as\nbottom of the stack), as the RootInfo does not have that\ninformation.\n\nBug: 31385354\nTest: m test-art-host-run-test-913-heaps\nChange-Id: I8e51415a02678c55b687144b4cb749c4105bd3c1\n"
    },
    {
      "commit": "862bdd8ac9bc0071493acaf3574610cbc7792bbf",
      "tree": "7b8d469b9c60e1187e630340ed936db58d7f917d",
      "parents": [
        "3bf14d69ab1823ae3e3ff372ac04a404044c3682"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 13:31:13 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 15:01:48 2016 -0800"
      },
      "message": "ART: Fix generic_ptr handling in GetMethodName\n\nDo not write null into a null pointer.\n\nBug: 31684812\nTest: m test-art-host-run-test-910-methods\nChange-Id: I79a255c1403ca9621390c9cdc09d2381c26fffb6\n"
    },
    {
      "commit": "3bf14d69ab1823ae3e3ff372ac04a404044c3682",
      "tree": "da3b734e18d25ea3f7718db2ac3a42f735523f26",
      "parents": [
        "88c4ff69dfed9e8f057a7b854605fc266cb35a5f",
        "8b2cf761df20e60a9e0e57564db3ab4eae5d64a7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 18 21:04:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 21:05:00 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use interpret-only instead of verify-at-runtime when testing JIT\"\"\""
    },
    {
      "commit": "88c4ff69dfed9e8f057a7b854605fc266cb35a5f",
      "tree": "980b5543dbeda48cb2058c4d7f07e548a8724e7f",
      "parents": [
        "a9d89686c9b447fc228cb5e71ae2332de36a27cc",
        "7afa45427cc2cef534a3fb68a295fa5a4f305062"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 21:03:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 21:03:14 2016 +0000"
      },
      "message": "Merge \"ART: Dump native stack on recursive abort\""
    },
    {
      "commit": "a9d89686c9b447fc228cb5e71ae2332de36a27cc",
      "tree": "4aed5a53dfa32374520f2984747a0219256f6660",
      "parents": [
        "8df07aa7fedb252cc9a9f42bb3395b1f30ac856d",
        "53b61f71a8f644704dcc5c100d5dd23556677956"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 18 20:16:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 20:16:31 2016 +0000"
      },
      "message": "Merge \"Run 103-string-append with libartd.\""
    },
    {
      "commit": "8df07aa7fedb252cc9a9f42bb3395b1f30ac856d",
      "tree": "0c2f55ce03c9af1a0d1d1831de251adee01fdd27",
      "parents": [
        "5e294c3f015c8e3a2ec88a8ff117a1ec801f0d3a",
        "b67906bb98409911b4ffe7da7fcd5b049ee089fb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 18 19:33:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 19:33:26 2016 +0000"
      },
      "message": "Merge \"ART: Use cerr in Runtime::Abort on the host\""
    },
    {
      "commit": "8b2cf761df20e60a9e0e57564db3ab4eae5d64a7",
      "tree": "5c9a44da1911d455310d88c78fa6871e2397a41d",
      "parents": [
        "5e294c3f015c8e3a2ec88a8ff117a1ec801f0d3a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 18 17:39:26 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 18 18:05:04 2016 +0000"
      },
      "message": "Revert \"Revert \"Use interpret-only instead of verify-at-runtime when testing JIT\"\"\n\nThis reverts commit 0b4d05e096d31e9c2d5ae522dbcc7b190b60a6f6.\n\nTest: m test-art-host-run-test\nChange-Id: Ie946ebd899002bdc7502276b3d53000c551be768\n"
    },
    {
      "commit": "7afa45427cc2cef534a3fb68a295fa5a4f305062",
      "tree": "a29899fb5c989229d43cc6eb7b41d6ac8d5d306a",
      "parents": [
        "b67906bb98409911b4ffe7da7fcd5b049ee089fb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:51:06 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:51:06 2016 -0800"
      },
      "message": "ART: Dump native stack on recursive abort\n\nDump the native stack of the current thread on recursive abort.\nThat is safe to do, as it requires no runtime interaction.\n\nTest: m test-art-host\nChange-Id: I4e052916f1036c74dc9fa82b049b4574626a70bb\n"
    },
    {
      "commit": "b67906bb98409911b4ffe7da7fcd5b049ee089fb",
      "tree": "0c2f55ce03c9af1a0d1d1831de251adee01fdd27",
      "parents": [
        "5e294c3f015c8e3a2ec88a8ff117a1ec801f0d3a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:30:08 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:31:11 2016 -0800"
      },
      "message": "ART: Use cerr in Runtime::Abort on the host\n\nUse cerr to immediately write out abort info on the host, in an\neffort to make recursive aborts diagnosable. This is similar\n(but slightly inferior) to the previous INTERNAL_FATAL fastpathing.\n\nTest: m test-art-host\nChange-Id: I7c49874951acd47e58faceeb84a9ba93159ca3b0\n"
    },
    {
      "commit": "5e294c3f015c8e3a2ec88a8ff117a1ec801f0d3a",
      "tree": "8b18d527d590d0c3c4264a6245d09f6dd56f981a",
      "parents": [
        "2dae2f256bce26690a29af498c50cc2d6440d15b",
        "0b4d05e096d31e9c2d5ae522dbcc7b190b60a6f6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 18 16:09:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 16:09:11 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert Revert \"Use interpret-only instead of verify-at-runtime when testing JIT\"\"\""
    },
    {
      "commit": "0b4d05e096d31e9c2d5ae522dbcc7b190b60a6f6",
      "tree": "0ed7bb6f4dee1a00feb0e5aac3e1910fb03f0a81",
      "parents": [
        "0b64a5195b38773084ff94618ac22284bc855b92"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 18 16:07:58 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 18 16:07:58 2016 +0000"
      },
      "message": "Revert \"Revert Revert \"Use interpret-only instead of verify-at-runtime when testing JIT\"\"\n\ntest-art-host-run-test-debug-prebuild-jit-relocate-ntrace-gcstress-checkjni-picimage-npictest-ndebuggable-974-verify-interface-super64 fails on the build servers.\n\nIt\u0027s unclear if it\u0027s because of this CL but revert again to check if it fixes the problem.\n\nLocally everything is green...\nThis reverts commit 0b64a5195b38773084ff94618ac22284bc855b92.\n\nChange-Id: I4668b8d8f8c9672fd942a693d98a20113fbb6b9e\n"
    },
    {
      "commit": "132d8363bf8cb043d910836672192ec8c36649b6",
      "tree": "42ee8b08f0323e9762675333b50a4c218ecdefc7",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 09:19:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 14:31:30 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\n\nTest: 626-set-resolved-string, test-art-host, test-art-target\nTest: run-libcore-tests.sh\nTest: phone boots and runs\n\nThis reverts commit 3395fbc20bcd20948bec8958db91b304c17cacd8.\n\nChange-Id: I104b73d093e3eb6a271d564cfdb9ab09c1c8cf24\n"
    },
    {
      "commit": "2dae2f256bce26690a29af498c50cc2d6440d15b",
      "tree": "5c9a44da1911d455310d88c78fa6871e2397a41d",
      "parents": [
        "67eb3914d2555e9c191337a4fe42ecef419b0330",
        "01b70e8bca5e824ee3958ffbdd7727334e81eb0a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 13:14:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 13:14:11 2016 +0000"
      },
      "message": "Merge \"Add dequickening support.\""
    },
    {
      "commit": "67eb3914d2555e9c191337a4fe42ecef419b0330",
      "tree": "df35892393e9dc706eb4efd7c88d956ea6004403",
      "parents": [
        "80fdea404b6713e9ec1da4c3346d427aad1cfa74",
        "09a940de7d6de44260c25b778f0850f52b2e4438"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 12:54:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 12:54:01 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix PackedSwitch.\""
    },
    {
      "commit": "80fdea404b6713e9ec1da4c3346d427aad1cfa74",
      "tree": "43ee0efd7e7f07e9e7da4df8f06456099cac6ed7",
      "parents": [
        "b760a2f966ae07596da6cfe6baeef39a3ed7664e",
        "e2fc98e88106b9cfa44eeacc6765c291feda04a8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 12:02:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 12:02:15 2016 +0000"
      },
      "message": "Merge \"Fix valgrind issue with thread_pool_test.\""
    },
    {
      "commit": "b760a2f966ae07596da6cfe6baeef39a3ed7664e",
      "tree": "8d67d17bbc204735fabc39cd59af26536da57a6a",
      "parents": [
        "965a21e284c39a35c185a9d58b843ce5287d7f7c",
        "0b64a5195b38773084ff94618ac22284bc855b92"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 18 12:01:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 12:01:36 2016 +0000"
      },
      "message": "Merge \"Revert Revert \"Use interpret-only instead of verify-at-runtime when testing JIT\"\""
    }
  ],
  "next": "965a21e284c39a35c185a9d58b843ce5287d7f7c"
}
