)]}'
{
  "log": [
    {
      "commit": "41e604aac001ef023ad61f672239b76ccf33489b",
      "tree": "518cc006471e205633c9adf7c71739f547cded30",
      "parents": [
        "e9cd81c14609fa9dae2125e96ec4d86ca959117f",
        "31afbec96e9f9c8e58778694e74aea7ce55e1378"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Mar 16 14:20:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 14:20:30 2017 +0000"
      },
      "message": "Merge \"ART: Bit intrinsics for Mterp interpreter\""
    },
    {
      "commit": "31afbec96e9f9c8e58778694e74aea7ce55e1378",
      "tree": "1ad1633c75fb6c65fbb25d09fb9dcf92c4a81b8c",
      "parents": [
        "c53528a048e47ef8c51fc5c9667061ebd840adf1"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 14 15:30:19 2017 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Mar 16 05:31:59 2017 -0700"
      },
      "message": "ART: Bit intrinsics for Mterp interpreter\n\nAnother batch of interpreter intrinisics, mostly around bit\nmanipulation.  Also some formatting changes and inclusion of a\ncomprehensive list of recognized intrinisics (to assist with\ntelling what\u0027s left to do).\n\nBug: 30933338\n\nBenchmarks:\n   20% Improvement for Reversi\n   10% Improvement for Scimark2\n    3% Improvement for ChessBench\n\nTest: ART_TEST_INTERPRETER\u003dtrue m test-art-host\nTest: art/tools/run-libcore-tests --host (edited for force -Xint)\n\nNote: Added intrinsics have existing test coverage via\n082-inline-execute, 123-inline-execute2, 565-checker-rotate,\n564-checker-bitcount, 566-checker-signum \u0026 567-checker-compare\n\nChange-Id: I29f0386e28eddba37c44f9ced44e7d5f8206bb47\n"
    },
    {
      "commit": "9e57abacecc683f50dd6c9870a32ee075eaf86a8",
      "tree": "27ef93c87f3ce9f09414620f77b35f6d0949fb22",
      "parents": [
        "26ec3cad4968ae32ce9d04c3046f766df46d9bd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 16 10:45:40 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 16 10:55:24 2017 +0000"
      },
      "message": "Fix String::DoReplace() using obsolete `this`.\n\nChange it to a static function taking a Handle\u003c\u003e.\n\nTest: testrunner.py --host --interp-ac --gcstress -t 021-string2\nBug: 36335996\nChange-Id: I5ab3e7adc59d6a9095290e57d5ce5d46b79f089b\n"
    },
    {
      "commit": "8f323e09e692ff4f95f40300391fe41fb96a6c49",
      "tree": "990917f714cbe1565105145a2232e557bb0b7048",
      "parents": [
        "8f48f4cb1760cd5d1b193e87ba6b56043bb08f35",
        "e667a3c2e4cae5a977e412a1d80f31a1dc4f3028"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Mar 13 12:47:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 13 12:47:04 2017 +0000"
      },
      "message": "Merge \"ART: String intrinsics for Mterp interpreter\""
    },
    {
      "commit": "e667a3c2e4cae5a977e412a1d80f31a1dc4f3028",
      "tree": "eb7b8832797e62d0389443148b1d5afb5e8d7071",
      "parents": [
        "c02fe5f31d487765a8c59922c46d459ba6ebf939"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Mar 09 13:51:23 2017 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 10 13:08:32 2017 -0800"
      },
      "message": "ART: String intrinsics for Mterp interpreter\n\nAdds the most common java.lang.string intrinsics.  Includes change\nto jvalue handling to zero-exend setting of chars and booleans to\n64 bits (aligns with current sign-extension of shorts and ints).\n\nBug: 30933338\n\nBenchmarks:\n  2x boost for Caffeinemark String\n  11% improvement for Dhrystone\n\nTest: ART_TEST_INTERPRETER\u003dtrue m test-art-host\nTest: ART_TEST_INTERPRETER\u003dtrue m test-art-target (Bullhead)\n\nNote: Added intrinsics have existing test coverage via\n082-inline-execute and 123-inline-execute2.\n\nChange-Id: I64b35b1d7bdfe14da0c662594c0edf5cde667277\n"
    },
    {
      "commit": "cac55a12d455efeeb928b6c5629dae4636249e56",
      "tree": "2c7b988bb41c592425783cb279e2c4066fe8e0f0",
      "parents": [
        "d1d4530ffa97729aa8944932a7ac2009ae51c7e3",
        "ece2f7c2644062cb39ad9a62cc19278398deec6b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 09 16:33:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 16:33:24 2017 +0000"
      },
      "message": "Merge \"Update UnstartedRuntime for System.identityHashCode.\""
    },
    {
      "commit": "41d82634a7a90559c9d47ba1baa9a1ea0a3d314a",
      "tree": "09bd063fe74677ba113690fd5f63e230d4897080",
      "parents": [
        "68fdd5a22024f70a65159bcb8929296fc93b807d",
        "01822299e8c3a7827d6613cd08fca6aa52c4ae42"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 09 09:03:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 09:03:51 2017 +0000"
      },
      "message": "Merge \"Revert \"Stop interpreter from accessing code items of compiled code.\"\""
    },
    {
      "commit": "01822299e8c3a7827d6613cd08fca6aa52c4ae42",
      "tree": "0091c82b4f3b239b6b28418062954b9a0583261d",
      "parents": [
        "df79ddb545f0d6e71d6eebb9cb94aa6916351ee9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 09 09:03:19 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 09 09:03:19 2017 +0000"
      },
      "message": "Revert \"Stop interpreter from accessing code items of compiled code.\"\n\nBug: 35800981\n\nThis reverts commit df79ddb545f0d6e71d6eebb9cb94aa6916351ee9.\n\nChange-Id: I04b1cb8d002ca330c0aa6e68b431c7f80c2779d6\n"
    },
    {
      "commit": "02a4d7ff633e67d0a5113f0fc742116dcdc5b7f6",
      "tree": "72a4982d326b528ef8a64d113390d01dae08ddfd",
      "parents": [
        "8a9f49e33b17de220d6bb122194b632ccc8673e3",
        "df79ddb545f0d6e71d6eebb9cb94aa6916351ee9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 09 03:53:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 03:53:36 2017 +0000"
      },
      "message": "Merge \"Stop interpreter from accessing code items of compiled code.\""
    },
    {
      "commit": "df79ddb545f0d6e71d6eebb9cb94aa6916351ee9",
      "tree": "3fb9da92f3049c3afa99920898b0ddc57e68b074",
      "parents": [
        "68948e01f56ad1996af77f4c0aab721940b0e18d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Feb 27 14:47:06 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 09 00:36:13 2017 +0000"
      },
      "message": "Stop interpreter from accessing code items of compiled code.\n\nThe ArtInterpreterToCompiledCodeBridge accesses the code item in a\nnumber of places to handle argument marshalling. However, the code item\nof a compiled method should have no need to be accessed by the runtime\nat all, since the code has been compiled. By removing these accesses,\nthere is a drop in the memory footprint of the dex file, since these\ncode items remain untouched by the runtime.\n\nBug: 35800981\nTest: mm test-art-host\nChange-Id: Ib7d29c17e80b1690aa819d083f5b12739492ebd6\n"
    },
    {
      "commit": "78f1bdc6bbf0ac07a333ada2396987e8391eee49",
      "tree": "148edb8b92b9df1da50b61448417267c00d014a3",
      "parents": [
        "fddc19338d9fdee24c4e10b758db1a6997004e2e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Mar 01 10:55:57 2017 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Mar 08 09:22:05 2017 -0800"
      },
      "message": "Interpreter intrinsics\n\nFirst of several intrinsic CLs.  This one provides the basic\nmechanism plus a handful of the most simple examples.  Note that\nIntrinsic support is limited to Mterp both to keep the switch\ninterpreter as a pure reference, and to avoid mixing debugging\nand intrinsics.\n\nBug: 30933338\n\nTest: ART_TEST_INTERPRETER m test-art-host\nTest: Note: existing 082-inline-execute, 123-inline-execute2\nTest:   cover intrinsics enabled by this CL.\n\nChange-Id: I9d79e23a84bf00cadb54e1db52d8ed193bbf8887\n"
    },
    {
      "commit": "ece2f7c2644062cb39ad9a62cc19278398deec6b",
      "tree": "47f8e0796f171b4add33f9fca687ef00210ab6e3",
      "parents": [
        "7b6bd79319f239d20f0dadab3e6bb676e906cb5b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 08 16:11:23 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 08 17:20:22 2017 +0000"
      },
      "message": "Update UnstartedRuntime for System.identityHashCode.\n\nThe method is not native anymore.\n\nTest: unstarted_runtime_test\nChange-Id: Ib5cc378f05e9b6ee50168129e855803773a9c5e6\n"
    },
    {
      "commit": "fa6adfd5f349bfeadc6b1bf4fd5f47666dc96269",
      "tree": "23bcee09cf361ce5eeeb7b4d7d68babebb2dce17",
      "parents": [
        "12664625ccbf7b11b7b8f8daca5ac1cb405ef7a3"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 22 13:40:59 2017 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Feb 28 10:56:10 2017 -0800"
      },
      "message": "ART/Mterp: eliminate unnecessary access checks\n\nThis CL switches mterp from using the old quick entrypoints\nfor sget/sput to instead using an sget/sput access sequence\nsimilar to that used by the reference interpreter.  This\nresults in a reduction of unnecessary access checks.\n\nBenchmarks: 3% improvement on DeltaBlue\n\nBug: 30933338\nTest: ART_TEST_INTERPRETER\u003dtrue m test-art-host\nChange-Id: Ib4e64d72b511c6a9ed537289bfeb393eff42c70f\n"
    },
    {
      "commit": "1c5cab0587864e2ca10ca75a0913ff481bb9cb1f",
      "tree": "4bdc477123a2d59e5f3505e160003527c2e4226d",
      "parents": [
        "0fc3e418428f9f29a52c1dd60b1d86c71eb00d18"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Feb 27 08:05:16 2017 -0800"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Feb 27 16:44:41 2017 +0000"
      },
      "message": "ART: Let mterp know about invoke-custom\n\nBy default, the mterp assembly interpreter will redirect any\nnew or unexpected dex opcode to the reference switch interpreter.\nThat\u0027s what is happening now with the new invoke-custom opcodes.\nThis CL simply makes that fallback transition explicit.\n\nTest: ART_TEST_INTERPRETER\u003dtrue m test-art-host\nChange-Id: I9e1388ce58cb6e0618697748c6bafa55fdbbeb57\n"
    },
    {
      "commit": "92907f3f7af106a9eeb341caba17f3770203f7fb",
      "tree": "c44f6b487c9ad078c044f19a4a6d72eaf4979d11",
      "parents": [
        "1b7ba9e15d9525eec7ea68e9ecf95e5777a46069"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 20 14:08:30 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 21 12:31:52 2017 +0000"
      },
      "message": "Remove String.setCharAt().\n\nThe internal API String.setCharAt() breaks the assumption\nthat strings are really immutable. That in turn breaks\nstring compression invariants - compressible strings must\nbe compressed. This CL removes the String.setCharAt() API.\n\nThe method was used only in String.replace(char, char)\nwhen we found a match, copying the string on first match.\nInstead, introduce a new native method that does the whole\nreplacement with a single call when we find the first match.\n\nStringReplaceBenchmark results on Nexus 6P, lower is better:\n  timeReplaceCharNonExistent/EMPTY   41.93 -\u003e   38.25 (-9%)\n  timeReplaceCharNonExistent/L_16   114.90 -\u003e   95.09 (-17%)\n  timeReplaceCharNonExistent/L_64   419.97 -\u003e  320.65 (-24%)\n  timeReplaceCharNonExistent/L_256 1667.01 -\u003e 1091.25 (-35%)\n  timeReplaceCharNonExistent/L_512 3253.50 -\u003e 2075.62 (-36%)\n  timeReplaceCharRepeated/EMPTY      41.93 -\u003e   39.58 (-6%)\n  timeReplaceCharRepeated/L_16      114.87 -\u003e   95.40 (-17%)\n  timeReplaceCharRepeated/L_64     1267.29 -\u003e  704.32 (-44%)\n  timeReplaceCharRepeated/L_256    5139.14 -\u003e 1361.80 (-74%)\n  timeReplaceCharRepeated/L_512   10787.81 -\u003e 2338.41 (-78%)\n  timeReplaceSingleChar/EMPTY        41.78 -\u003e   37.16 (-11%)\n  timeReplaceSingleChar/L_16        449.54 -\u003e  497.51 (+11%)\n  timeReplaceSingleChar/L_64        942.08 -\u003e  891.35 (-5%)\n  timeReplaceSingleChar/L_256      2756.18 -\u003e 2174.64 (-21%)\n  timeReplaceSingleChar/L_512      5489.91 -\u003e 3983.32 (-27%)\n\nTest: testrunner.py --host\nTest: run-libcore-tests.sh --mode\u003dhost\nTest: testrunner.py --host with string compression enabled.\nTest: run-libcore-tests.sh --mode\u003dhost with string compression enabled.\nBug: 31040547\nChange-Id: I9cf0d5457182f0a33ca8251c29931d3eb624ae07\n"
    },
    {
      "commit": "85bef7ea31ac8ad90f97b20c3c391da99c4fb8a0",
      "tree": "43959d2d748077f60cfac143e4a94707284b910d",
      "parents": [
        "6a669aac63ffc17b5e903aa4a1f285fe338eadcf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 16 18:13:26 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 17 10:44:37 2017 -0800"
      },
      "message": "ART: Add constructor support to unstarted runtime\n\nAdd support for Constructor.newInstance0.\n\nBug: 34956610\nTest: m\nTest: m test-art-host-gtest-unstarted_runtime_test\nTest: Device boots\nChange-Id: Ifcea33359c30b70262cd2f4f56f59515b06532ce\n"
    },
    {
      "commit": "9486a16180466e32aa8a98927030aff9fbdce189",
      "tree": "a0ed8e41136c8d1e39671906b49341d0f4659ae4",
      "parents": [
        "08d567b67fb7c98f48983c4adcde2465e5f14628"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 16 15:17:47 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 16 15:40:44 2017 -0800"
      },
      "message": "ART: Add GetSignatureAnnotation to unstarted runtime\n\nAdd support for Class.getSignatureAnnotation to the unstarted\nruntime. Refactor dex file annotation code to support transactions.\n\nBug: 34956610\nTest: m\nTest: m test-art-host-gtest-unstarted_runtime_test\nTest: Device boots\nChange-Id: I9f4a93e05ad6999c46c3bb1dbabe48a1ad6225b2\n"
    },
    {
      "commit": "47de0fad87b5e9a02b1fdde124ff32247f0b477e",
      "tree": "87fda7f87a8d10cd67177298b68fd7e46e0ac098",
      "parents": [
        "2bece1f9df4a060db2fc5b65cd3f3785e4e6e877"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 15 19:29:36 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 16 11:07:41 2017 -0800"
      },
      "message": "ART: Fix Unstarted Runtime Class.forName\n\nWe really only support the boot classloader, and only in the null\ndenotation. Otherwise the class-linker would want to install a\nclass table into the fake BootClassLoader.\n\nAdd tests.\n\nBug: 34956610\nTest: m test-art-host-gtest-unstarted_runtime_test\nChange-Id: I47e284fbd17eb8d33665d2788afcbcc3d09d3d2e\n"
    },
    {
      "commit": "70dc86b03a65b6407f609c401ec78a3e68570bc1",
      "tree": "abdec940c033b5726d166ac200d2dfbc494f1536",
      "parents": [
        "45d942662883a0c5106b85b54e87be0f0610b394"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 15 14:40:55 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 15 14:40:55 2017 -0800"
      },
      "message": "ART: Remove unintended debug logging\n\nTest: m\nChange-Id: Id6085215d8a9e2d22454894adc3c1e9923e54611\n"
    },
    {
      "commit": "45d942662883a0c5106b85b54e87be0f0610b394",
      "tree": "c5fc69b1d327ac7479eb2b6f90f9d45c4246689d",
      "parents": [
        "3fb852a88d2a8ffaa87089752f4b1d5f9d6ce3c1",
        "bad529da18122c7044fbfd7d56153535d34367b1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 15 21:02:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 15 21:02:27 2017 +0000"
      },
      "message": "Merge \"ART: Add currentThread cutout to Unstarted Runtime\""
    },
    {
      "commit": "bad529da18122c7044fbfd7d56153535d34367b1",
      "tree": "44982bc9ec345be1e96ba6c66e22e5c08fcaed56",
      "parents": [
        "1fb51268b78f55b345ea951a73eae5194ec71b91"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 13 18:52:10 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 17:43:52 2017 -0800"
      },
      "message": "ART: Add currentThread cutout to Unstarted Runtime\n\nAdd currentThread() and getThreadState() cutouts to the unstarted\nruntime to allow further compile-time initialization. The cutouts\nare protected by call-stack checks.\n\nAdd tests.\n\nBug: 34956610\nTest: m test-art-host-gtest-unstarted_runtime_test\nChange-Id: I6335bccda8bedae90376fc7c47b303576f1ac78b\n"
    },
    {
      "commit": "fe35fe172a7d3469ebf1dae9cca7e1ac8aefcba7",
      "tree": "3bf964f7786227f8104eeba08fe2e1768109a764",
      "parents": [
        "a0637543dc82dfd54feda7c80da017bd39b1d2d5",
        "fa4333dcb481e564f54726b4e6f8153612df835e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 22:11:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 22:11:35 2017 +0000"
      },
      "message": "Merge \"ART: Add operator \u003d\u003d and !\u003d with nullptr to Handle\""
    },
    {
      "commit": "fa4333dcb481e564f54726b4e6f8153612df835e",
      "tree": "ae597c7587dc214434a180962c4373d3748f51ab",
      "parents": [
        "2d98ba68f13dc219c088a12f369c5778bf398f14"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:10:34 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:44:48 2017 -0800"
      },
      "message": "ART: Add operator \u003d\u003d and !\u003d with nullptr to Handle\n\nGet it in line with ObjPtr and prettify our code.\n\nTest: m\nChange-Id: I1322e2a9bc7a85d7f2441034a19bf4d807b81a0e\n"
    },
    {
      "commit": "c069a30d42aefd902c20e8bc09dfad1683f07ded",
      "tree": "8bbf72bea7ea5d243b57f8e0ab64b687a9f60e4b",
      "parents": [
        "3f38398380b80d1ded078ebed1211b7e4f51460f"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 18 09:23:12 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 14 14:04:33 2017 +0000"
      },
      "message": "ART: invoke-custom support\n\nAdds invoke-custom instruction to the interpreter.\n\nBug: 33191717,30550796\nTest: art/test/run-test --host 952\nChange-Id: I3b754128649a8b3a00ade79ba2518d0e377f3a1e\n"
    },
    {
      "commit": "3d2fcaae4145a50e4d7460d8ce3caf97eb825a08",
      "tree": "583773207bd59fb7a88fbd1994383987d9f0f663",
      "parents": [
        "8d4b1189639f0d8982bde681ccbdd7c03fe6ddbf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 09 12:50:52 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 09 13:55:42 2017 -0800"
      },
      "message": "ART: Update unstarted runtime for changed libcore\n\nUpdate float conversion to current libcore implementation. Add\ntests.\n\nBug: 34956610\nTest: m test-art-host-gtest-unstarted_runtime_test\nChange-Id: Ib62c64011e2d5b980fb8fab81f6c343065ce946c\n"
    },
    {
      "commit": "8b6d2fd300624ad1716c0907e646b87997b6671d",
      "tree": "ee0ef8b755d2927bc97fdabb05347579420b78c9",
      "parents": [
        "4f5dfb392559feca746ec558e268ce490dcbb88c",
        "ae78c2643375c7536affcec318a60d13d430f181"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 02 21:46:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 21:46:23 2017 +0000"
      },
      "message": "Merge \"ART: Add UnstartedRuntime support for Class.getSimpleName\""
    },
    {
      "commit": "ae78c2643375c7536affcec318a60d13d430f181",
      "tree": "d7299730b4e84107d544f66b6a046af75f367669",
      "parents": [
        "a85111c5f25310e3d0eac68a6f0d8cd7c6612dfe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 01 20:40:44 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 02 10:53:14 2017 -0800"
      },
      "message": "ART: Add UnstartedRuntime support for Class.getSimpleName\n\nThis requires two native methods, isAnonymousClass and\ngetDeclaringClass.\n\nAdd tests.\n\nBug: 34890992\nTest: m\nTest: m test-art-host\nTest: Device boots\nChange-Id: Ib3fca2a6bb6e367ef202ff864719cab979d6c793\n"
    },
    {
      "commit": "6674a744b5c83aa12aa25fad544fa5041b4b5550",
      "tree": "93216746f8bef1b657cfe9b31060002b2901dbd3",
      "parents": [
        "a85111c5f25310e3d0eac68a6f0d8cd7c6612dfe",
        "42a09cb0c6aee5de92eb4cdf6d34646dcd247840"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 17:08:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 17:08:16 2017 +0000"
      },
      "message": "Merge \"ART: Reduce overhead of mterp OSR checking\""
    },
    {
      "commit": "42a09cb0c6aee5de92eb4cdf6d34646dcd247840",
      "tree": "32a06b1cdc48cd1eeb4f6f0ba232935c5393f899",
      "parents": [
        "fbf47ea64a9f797a82030e919fa4f085c9eb5b28"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 01 09:08:31 2017 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 01 09:08:31 2017 -0800"
      },
      "message": "ART: Reduce overhead of mterp OSR checking\n\nOnce mterp\u0027s branch profiling identifies a method hot enough\nto try on-stack replacement, a request is made to the JIT to compile\nthe method for OSR.  Mterp then enters a mode in which it checks\nfor completion of the compilation in order to initiate the OSR.\nCurrently, this completion check happens on every branch. In\nsituations in which the JIT is backlogged and it takes awhile for the\ncompilation to complete, the overhead of doing these checks is noticable.\n\nThis change moves from a \"check on every branch\" model to a \"check\non every Nth branch\" model.  We start with N\u003d100, which should still\nyield responsive OSR but dramatically reduce the checking overhead.\n\nBug: 32090348\nTest: m test-art-host\nTest: m test-art-target (Nexus 5x)\nChange-Id: I97442723397bb242163dc18bd4444977bcd469fa\n"
    },
    {
      "commit": "d16363a93053de0f32252c7897d839a46aff14ae",
      "tree": "8823c6dd4641eae333aa7001203460757a515010",
      "parents": [
        "ac240396125911b52437a460a400c8b38be43a96"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 01 14:09:13 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 01 15:27:37 2017 +0000"
      },
      "message": "Revert \"Hash-based dex cache type array.\"\n\nReverting to work around some programs crashing with\n    Check failed: handle_scope_iface.Get() !\u003d nullptr.\nthough the reason for the failure not yet understood.\n\nTest: m test-art-host\nBug: 34839984\nBug: 30627598\nBug: 34659969\nBug: 30419309\n\nThis reverts commit ec7862283dd49f5a58d0ac45960ce27c2f7671b8.\n\nChange-Id: Ifded663633082f1e59e5b6ff2e026dc559bd6b82\n"
    },
    {
      "commit": "ec7862283dd49f5a58d0ac45960ce27c2f7671b8",
      "tree": "26d6dcc1d5ed4f0ba5ac15f17ef7377215684bf6",
      "parents": [
        "c01d49091f4588777db5bf45345f388058caa99f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 20 16:24:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 10:21:16 2017 +0000"
      },
      "message": "Hash-based dex cache type array.\n\nTest: m test-art-host (Interpreter, Optimizing, JIT)\nTest: m test-art-target on Nexus 6P (Interpreter, Optimizing, JIT)\nTest: Nexus 6P boots\nTest: m valgrind-test-art-host\nBug: 30627598\nBug: 34659969\nBug: 30419309\nChange-Id: Ic00eda89e58088a3573fc9ec0ad04c0e69e161d1\n"
    },
    {
      "commit": "5e8d5f01b0fe87a6c649bd3a9f1534228b93423d",
      "tree": "a1441acc0021d170f412542ae2a1ae62794e7846",
      "parents": [
        "b0dde4397fa5b0756312b46bd18477a2c1f6a7da"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 18 18:03:43 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 23 15:50:01 2017 +0000"
      },
      "message": "Fix some typos in ART.\n\nTest: m build-art-host\nTest: m cpplint-art\nChange-Id: Ifc6ce3d0d645c4a8dca72dd483fc03fc05077130\n"
    },
    {
      "commit": "8631a46d6d93d739428873b9b4053d228b9b5cfa",
      "tree": "aef39e578a857c49817398f567bb2508839e942b",
      "parents": [
        "dedb22a0e099c81435a764881bdfa8bb050c3d3f"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Jan 19 19:07:37 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Jan 19 21:20:45 2017 -0800"
      },
      "message": "Fix polymorphic invokes (one more round).\n\nmemcpy() exhibits undefined behavior when the source and the\ndestination overlap. Use memmove() instead.\n\nThis fixes test failures when running the below tests on MIPS.\n\nTest: booted MIPS32R2 in QEMU\nTest: ./run-test --interpreter 953-invoke-polymorphic-compiler\nTest: ./run-test --interpreter 955-methodhandles-smali\nTest: ./run-test --interpreter 956-methodhandles\nTest: ./run-test --interpreter 957-methodhandle-transforms\nTest: ./run-test --interpreter 958-methodhandle-emulated-stackframe\nTest: ./run-test --interpreter 959-invoke-polymorphic-accessors\n\nChange-Id: Ia17ff25001faa7d91ce1178ab35313c36e75aa07\n"
    },
    {
      "commit": "942fd3130254d8276cbfe8e6201825e9c49e9b2c",
      "tree": "62dbcd85ab150604e2d72a3c2d0c3639a28c9b7a",
      "parents": [
        "8bd59a0fd46db83616785168231e09fb95ed2ead"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 16 20:52:19 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 17 16:12:15 2017 +0000"
      },
      "message": "Reduce using ArtMethod\u0027s dex_cache_resolved_types_.\n\nAvoid using the ArtMethod\u0027s dex cache type array shortcut\nin runtime, preparing for its removal. We do not completely\nremove the shortcut yet because it is still used by array\nallocation entrypoints.\n\nFix ArgArray::BuildArgArrayFromObjectArray in reflection.cc\nto not ask for the parameter type to be resolved. It should\nhave been previously resolved when retrieving the Method.\n\nAlso partially revert\n    https://android-review.googlesource.com/310717\nbecause it relied on the removed AIOOBE check in the removed\nArtMethod::GetDexCacheResolvedType(). The removed check was\nsimply defensive but it could not be triggered without some\nmemory corruption.\n\nTest: m test-art-host\nBug: 30627598\nChange-Id: Ic45a5ff8c66b79429e440cbc08d67bf22a083682\n"
    },
    {
      "commit": "0d3998b5ff619364acf47bec0b541e7a49bd6fe7",
      "tree": "a4763c0660372f6311b612c09267cbbc2fe71e89",
      "parents": [
        "aa89a4c6fca095904521842c018399f1e3501a45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 15:35:12 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 16:51:12 2017 +0000"
      },
      "message": "Revert \"Revert \"Make object allocation entrypoints only take a class.\"\"\n\nThis reverts commit f7aaacd97881c6924b8212c7f8fe4a4c8721ef53.\n\nChange-Id: I6756cd1e6110bb45231f62f5e388f16c044cb145\n"
    },
    {
      "commit": "f7aaacd97881c6924b8212c7f8fe4a4c8721ef53",
      "tree": "780209ac8e992fa63307062977f672aa5bb55d9e",
      "parents": [
        "2b615ba29c4dfcf54aaf44955f2eac60f5080b2e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 12 02:58:38 2017 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 12 02:58:38 2017 +0000"
      },
      "message": "Revert \"Make object allocation entrypoints only take a class.\"\n\n960-default-smali64 is failing.\n\nThis reverts commit 2b615ba29c4dfcf54aaf44955f2eac60f5080b2e.\n\nChange-Id: Iebb8ee5a917fa84c5f01660ce432798524d078ef\n"
    },
    {
      "commit": "2b615ba29c4dfcf54aaf44955f2eac60f5080b2e",
      "tree": "0a2fe5f9243645a054d4aa094bff5a69cc1abb88",
      "parents": [
        "c9a060f2688599d4a402ee6234db46c2e9b7463f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 06 14:40:07 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 11 10:34:10 2017 +0000"
      },
      "message": "Make object allocation entrypoints only take a class.\n\nChange motivated by:\n- Dex cache compression: having the allocation fast path do a\n  dex cache lookup will be too expensive. So instead, rely on the\n  compiler having direct access to the class (either through BSS for\n  AOT, or JIT tables for JIT).\n- Inlining: the entrypoints relied on the caller of the allocation to\n  have the same dex cache as the outer method (stored at the bottom of\n  the stack). This meant we could not inline methods from a different\n  dex file that do allocations. By avoiding the dex cache lookup in\n  the entrypoint, we can now remove this restriction.\n\nCode expansion on average for Docs/Gms/FB/Framework (go/lem numbers):\n- Around 0.8% on arm64\n- Around 1% for x64, arm\n- Around 1.5% on x86\n\nTest: test-art-host, test-art-target, ART_USE_READ_BARRIER\u003dtrue/false\nTest: test-art-host, test-art-target,  ART_DEFAULT_GC_TYPE\u003dSS ART_USE_TLAB\u003dtrue\n\nChange-Id: I41f3748bb4d251996aaf6a90fae4c50176f9295f\n"
    },
    {
      "commit": "aceff18580b94a586a469110565f2ba166f3635a",
      "tree": "f6904a81ad70e54bc1968f7c0d9d6f33b9e19196",
      "parents": [
        "fac5c658f17c059c42c75cf8cbfbb0680c591c1d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 09 18:48:11 2017 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Jan 10 07:58:01 2017 -0800"
      },
      "message": "Delete extra arm64/mips64 MterpReturn suspend check\n\nDoing a suspend check after moving the result into the shadow frame\nresult_register_ is not safe since result_register_ is not a GC\nroot. The suspend check is unnecessary since the opcodes that branch\nto MterpReturn already do a suspend check.\n\nThis could maybe explain one crash for CC that was seen after calling\na getter that had no compiled code.\n\nThe extra suspend check appears to only be present on arm64 amd mips64.\n\nTest: test-art-target ART_TEST_INTERPRETER\u003dtrue\n\nBug: 33211261\nChange-Id: I70b8863f40a25a26f278ac8ef0d57e083b663e0f\n"
    },
    {
      "commit": "811bd5ff0189122d34e8a1b8ccda889bbba4c0d1",
      "tree": "278b128c15dc32657e06fd38b7111407edef552f",
      "parents": [
        "b51edffe1c0b331a4d4d5298938c7c1b31ebaf6a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 07 11:35:37 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 06 08:49:07 2017 +0000"
      },
      "message": "ART: Make method handle runtime code callable from compiler.\n\nMost of this change is moving the existing method handles code, but it\nalso introduces a new header file, common_dex_operations.h, that has\nsome operations taken from interpreter_common.{h,cc} that are also used\nby method handles (perform call, set field, get field).\n\nBug: 30550796\nTest: m test-art-host\nChange-Id: I2235e13770a5562950f2767f65a25ca273479150\n"
    },
    {
      "commit": "dba61481035b7944173181ec9ee02aea41dd0e29",
      "tree": "8629775e657cc8968e2f8fa2af6256c7a58c7dd4",
      "parents": [
        "cb2ce333ee2d1053919fe0acc390369bea3ad77e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 08:20:29 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 11:43:14 2016 -0800"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\"\n\nA GetDeclaringClass()-\u003eGetDexCache() got inserted during the\nmerge/review process meaning that we would try to access incorrect\ndex-cache in obsolete methods in some situations.\n\nAlso when using tracing we would loop forever (or at least until an\nOOM error) in test 916 due to tracing forcing InterpretOnly mode\nmeaning methods would never be jitted.\n\nBug: 32369913\nBug: 33630159\n\nTest: ART_TEST_TRACE\u003dtrue \\\n      ART_TEST_JIT\u003dtrue   \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nThis reverts commit f6abcda293b115a9d7d8a26376ea2dcf2d1dc510.\n\nChange-Id: I0773bfcba52e3cd51a83be815c6a50c189558f48\n"
    },
    {
      "commit": "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510",
      "tree": "a30ce596848d14c95a73449dbf2bfccf26a510b9",
      "parents": [
        "ce77fc0e7f60a15354bb20c356537cbf8b53b722"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\n\nFails in tracing mode\n\nBug: 32369913\nBug: 33630159\n\nThis reverts commit ce77fc0e7f60a15354bb20c356537cbf8b53b722.\n\nChange-Id: I1bdcf6ad467f2e31f9c5d0c3c987b90a4f5efc69\n"
    },
    {
      "commit": "ce77fc0e7f60a15354bb20c356537cbf8b53b722",
      "tree": "b4301967c423ab190a4274409d99a3d6e23f0e8a",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 01:05:52 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 19 14:26:18 2016 -0800"
      },
      "message": "Revert \"Revert \"Basic obsolete methods support\"\"\n\nThis reverts commit b81a9840b44480bfeacd74b8d9f51e06f295411d.\n\nThere were 2 issues with the original CL\u0027s test 916-obsolete-jit that\ncaused it to sporadically fail.\n\nFirst, when checking if we had jitted the function under test in\n916-obsolete-jit we failed to check to see if the function \u0027doCall\u0027,\nwhich is used to work-around bugs in our deoptimization \u0026 compilation\nsystems, had also been jitted.\n\nIn the case where the \u0027sayHi\u0027 function had been jitted but the\n\u0027doCall\u0027 function had not we would (correctly) fail to redefine the\n\u0027Transform\u0027 class since we would not be able to deoptimize the \u0027sayHi\u0027\nfunction since it is under a quick_to_interpreter_bridge (runtime)\nframe.\n\nSecondly, the function Main.isInterpretedFunction was incorrect and\nwould always return false, regardless of the actual state of the\nfunction. This would cause the test to fail as the\nquick_to_interpreter_bridge frame prevented deoptimization of the\nobsoleted function. Usually the warm-up period was enough to make sure\nthe methods were jitted anyway but this was not guaranteed.\n\nBoth of these problems become more likely to occur on systems with\nmore cpu contention such as the buildbots.\n\nTest: stress --cpu 60 \u0026; while ./test/run-test --host --jit 916; do ; done\n\nReason for revert: Fixed bug in test that was causing failures.\n\nOriginal Tests:\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: If1a92e47b90965a7dc21c5826185debe62bd1554\n"
    },
    {
      "commit": "913e6e6f36f6feb1d11e7c095dbbc9cea7ab01be",
      "tree": "d1e74a07e3b801ff81eaefe5569a1262cc922976",
      "parents": [
        "4c1667fd521f6e11367fd262f9bd6474f48fb3e7",
        "f9bf250cc642c4e3e0c6904550fe922d3359a737"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 09:32:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 16 09:32:23 2016 +0000"
      },
      "message": "Merge \"Remove dex cache string from mirror::Class.\""
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\n"
    },
    {
      "commit": "f9bf250cc642c4e3e0c6904550fe922d3359a737",
      "tree": "953351c7e13b45e9246625ad81bce708788d96f9",
      "parents": [
        "b73e659be3fb6474ff3a993cd25ecbfa1cc4715c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 14 14:59:04 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 15 14:52:22 2016 +0000"
      },
      "message": "Remove dex cache string from mirror::Class.\n\nThe compiled code does not need it anymore.\n\nTest: test-art-host test-art-target\nChange-Id: I71c08ce12d450ab2b2cd018330d42a8b8c9e3da2\n"
    },
    {
      "commit": "b7cc593a34896e230aab6d9718239b4f85c2dc63",
      "tree": "fdad7132bcdf125e8c2a499bf794bc6bcbba76d3",
      "parents": [
        "bdca0a27eb034152afba52f1d499d773b81908df",
        "b81a9840b44480bfeacd74b8d9f51e06f295411d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 01:04:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 01:04:03 2016 +0000"
      },
      "message": "Merge \"Revert \"Basic obsolete methods support\"\""
    },
    {
      "commit": "b81a9840b44480bfeacd74b8d9f51e06f295411d",
      "tree": "d79a3567b272b6eb4fb94d66a537cf92bef455db",
      "parents": [
        "d8936da27b792d1ca02e59c92456a1a53c7b9905"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "message": "Revert \"Basic obsolete methods support\"\n\nThis reverts commit d8936da27b792d1ca02e59c92456a1a53c7b9905.\n\nReason for revert: Some sort of race in JIT\n\nChange-Id: Ibb4e520bb0721d6d7aa2c841a52eb5baff07740e\n"
    },
    {
      "commit": "6d736d8edb0692ac70044c18045e2fcb3d14c1e5",
      "tree": "7b7c9973a04d9231af44fc967ebe49f1c835a861",
      "parents": [
        "7a8e16c827efc866d01b5cbca835b18fe29a83ab",
        "d8936da27b792d1ca02e59c92456a1a53c7b9905"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 14 22:21:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 14 22:21:28 2016 +0000"
      },
      "message": "Merge \"Basic obsolete methods support\""
    },
    {
      "commit": "d8936da27b792d1ca02e59c92456a1a53c7b9905",
      "tree": "6a593dd426e7f4a15c651dd3b872f22fb64f09ce",
      "parents": [
        "7c73bf3518eea7544406eadfed6946411c54a267"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 28 16:24:32 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 14 13:01:27 2016 -0800"
      },
      "message": "Basic obsolete methods support\n\nAdd support for executing obsolete methods following redefinitions.\nThis support includes methods that have been jitted. This does not add\nany additional validity checks to our redefinition functions.\n\nNote using work-arounds to ensure 916 works pending some fixes to the\ncompiler, deoptimizer, or both.\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: I78ef95f484146f1fb93c37fc50f56575bdab2432\n"
    },
    {
      "commit": "f4f7637ef078cbd0812432f5a4051858c80f6309",
      "tree": "7aa38858ff7af69ae2040bfb386d4a14dd371e96",
      "parents": [
        "0955e348436130df87ee8f2075b492a66c5232ef"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 13 14:43:58 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 13 14:43:58 2016 -0800"
      },
      "message": "ART: Make switch back-edge suspension point consistent\n\nBoth compiled code and mterp attribute a back-edge suspend point\nto the target. Make switch consistent by proactively updating\nthe frame\u0027s dex PC in that case.\n\nAdd another macro for reuse.\n\nBug: 31684812\nTest: m test-art-host-run-test-911-get-stack-trace\nTest: m ART_TEST_INTERPRETER\u003dtrue ART_TEST_JIT\u003dtrue ART_TEST_TRACE\u003dtrue test-art-host\nChange-Id: I9969cc4ffbc34cf1d8849938a1cd7e2c9aec462d\n"
    },
    {
      "commit": "a04a5cf781ae94b706c734ef9179f5a6218ba39f",
      "tree": "f88b3e76a9f7609f7bb9b53e3696f1e5443ef814",
      "parents": [
        "07830e11b718774c474d5f618ecfb29e238e47f7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Dec 06 05:00:01 2016 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Dec 06 05:53:59 2016 -0800"
      },
      "message": "Mterp/arm: Add CFI directives, add missing change\n\nCL 308760 neglected to regenerate mterp_arm.S.  Added here.\n\nTest: m ART_TEST_INTERPRETER\u003dtrue test-art-target (in progress)\nBug: 31456348\nChange-Id: I476e65e81bf54c8fdb1e2134d460db496308d6c1\n"
    },
    {
      "commit": "07830e11b718774c474d5f618ecfb29e238e47f7",
      "tree": "d09fee8d2915d5355aa367955610235c64269321",
      "parents": [
        "d1aa2912f3acdd9f47acd98e947818b09c2b349a",
        "ac50aab516a1ab0977fbc961f53f4edd29a891e5"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Dec 06 12:42:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 06 12:42:21 2016 +0000"
      },
      "message": "Merge \"Mterp/arm: Add CFI directives.\""
    },
    {
      "commit": "ac50aab516a1ab0977fbc961f53f4edd29a891e5",
      "tree": "329f7ea09c6e8a0ff655e12ac991a1b7ed7ca86d",
      "parents": [
        "6afaa42f50157095a3cdc742afdbc3d58b833eea"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Dec 01 14:03:05 2016 -0800"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 05 16:54:50 2016 +0000"
      },
      "message": "Mterp/arm: Add CFI directives.\n\nIncludes reworking of float_to_long and double_to_long to\nelminate frame (as suggested by vmarko).\n\nTest: m ART_TEST_INTERPRETER\u003dtrue test-art-target (in progress)\nBug: 31456348\nChange-Id: Ic4e985b977f76c4df926559b187d92d969206514\n"
    },
    {
      "commit": "c571e73e21202cff0a8ec3bcfecb7d326e8648ef",
      "tree": "905cb5252b8bc8c335f569c869dfb8529301f40c",
      "parents": [
        "edcd7929e2bf521316fa5305109c330d563d87db",
        "cfa325e4ca65603fdb03a836a6cb394d23ed511f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 02 11:52:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 02 11:52:15 2016 +0000"
      },
      "message": "Merge \"ART: Add verifier support for invoke-polymorphic.\""
    },
    {
      "commit": "cfa325e4ca65603fdb03a836a6cb394d23ed511f",
      "tree": "f14e628cc90f7b03f8f227a30361993f3f594f11",
      "parents": [
        "35b6546b0a4fe423ed6f27d8c5b709d5191e99ef"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Oct 13 10:25:54 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Dec 02 10:09:40 2016 +0000"
      },
      "message": "ART: Add verifier support for invoke-polymorphic.\n\nChange-Id: I1e1860cad80db46320c3ef5a9eaceb7529ea68d7\nBug: 30550796,33099829,33191712\nTest: make test-art-host\n"
    },
    {
      "commit": "4e1a19b2e2191c27c45cac373ad9db2d61ed7fc9",
      "tree": "4694e18e1ee50029a1506aae85630ee6d030efcd",
      "parents": [
        "903691455319f72219853a46340b59c9b89b7553",
        "112aa1088cf283d57c533be17d79c4b638665651"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 14:53:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 14:53:55 2016 +0000"
      },
      "message": "Merge \"Mterp/arm64: Add CFI directives.\""
    },
    {
      "commit": "112aa1088cf283d57c533be17d79c4b638665651",
      "tree": "7b6f8338d9f574efdacdeaf1144cd538306335c5",
      "parents": [
        "626b839f881f09a1481377a76712d08580c47a16"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 11:53:54 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 12:43:38 2016 +0000"
      },
      "message": "Mterp/arm64: Add CFI directives.\n\nAlso add two bug 31975598 workarounds to arm64 entrypoints.\n\nTest: m ART_TEST_INTERPRETER\u003dtrue test-art-target\nBug: 31456348\nBug: 31975598\nChange-Id: Ibf64160cf3b3f1ef644ff8f051ab7dc89643acf3\n"
    },
    {
      "commit": "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5",
      "tree": "0dec75200282ae5e49785395e97bd4e6459f1c09",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 07:38:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 11:11:46 2016 -0800"
      },
      "message": "ART: Add dex::StringIndex\n\nAdd abstraction for uint32_t string index.\n\nTest: m test-art-host\nChange-Id: I917c2881702fe3df112c713f06980f2278ced7ed\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "6beced4c017826f7c449f12fac7fa42403657f2b",
      "tree": "f53614eeeaa92be9a7398e262d9440f59e3384a5",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 15:51:31 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 10:41:40 2016 -0800"
      },
      "message": "Change iftable to never be null\n\nSimplifies code generation by removing a null check. The null case\nis rare.\n\nRitzperf code size: 13107624 -\u003e 13095336\n\nAlso addressed comments from previous CL.\n\nBug: 32577579\n\nTest: test-art-host, run ritzperf both with CC\n\nChange-Id: I2b31e800867112869d7f0643e16c08826296979e\n"
    },
    {
      "commit": "39ce7d2907edb978f1ab6cd75884be48ab11cd77",
      "tree": "7d2f0c56bd8a7dd483b5c1ede7047b623d0e35d7",
      "parents": [
        "5302bd999afee6db5b0cfd63e6a49b0fcbf92dd4",
        "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\""
    },
    {
      "commit": "1a06f9f67a4e91610d2a050093b36de264904916",
      "tree": "fc1630bba8730f4ad3fdac447d14a3682fe35c03",
      "parents": [
        "b98115251ea963254fb55c0e48581d8b284c29e9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 09 08:32:42 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 10 19:53:57 2016 +0000"
      },
      "message": "MethodHandles: Enable return value conversions.\n\nEnables return values conversions and simplify the type conversion\nlogic. Ensures check for WrongMethodTypeExceptions before invoking a\nmethod handle.\n\nTest: m test-art-host-run-test-956-methodhandles\nBug: 30550796\n\nChange-Id: I8add3ad0a19b43010946b4fb9f1c0f0949287860\n"
    },
    {
      "commit": "16593ed1d3914308052f98542bb9bf38ed588d53",
      "tree": "783e1081ec6828731ef88df679193d0c4c2f5919",
      "parents": [
        "af0cac6ed7221303c8bd8a77f6c41f4af8045d60",
        "fdaf0f45510374d3a122fdc85d68793e2431175e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 10 13:58:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 13:58:34 2016 +0000"
      },
      "message": "Merge \"Change string compression encoding.\""
    },
    {
      "commit": "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a",
      "tree": "19e2d9d5e8476bf526dd5924ef05b1d727b75f8b",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 03 13:06:52 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 09 18:14:08 2016 -0800"
      },
      "message": "Make empty checkpoint work while weak ref access is disabled.\n\nFix a potential race on PushOntoMarkStack for CC by running an empty\ncheckpoint (while weak ref access is disabled).\n\nBug: 32508093\nBug: 12687968\nTest: test-art-host with CC/CMS, libartd boot with N9, Ritz EAAC.\nChange-Id: I3749bb525e7734804307ee16262355f3fc730312\n"
    },
    {
      "commit": "751e2886f00eba428f5f9ef478befe712bb4ef4b",
      "tree": "58bbcfe2a231482b52465804b3a9ed0a49be4854",
      "parents": [
        "2a2f713717ace8a026cfe76c91165a5ed0d80182"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 09 11:14:38 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 09 11:14:38 2016 +0000"
      },
      "message": "MethodHandles: Remove obsolete TODO.\n\nIt was addressed by change 0d781e6e17a3f6285736c590001b59d50879f13b.\n\nTest: make build-art-host\nChange-Id: Ifb3f7fa2ffc245e88c77ca41268c376be1611308\n"
    },
    {
      "commit": "fdaf0f45510374d3a122fdc85d68793e2431175e",
      "tree": "3315c82410fd42612bb501bed150df454dde0dde",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 19:29:53 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 11:08:31 2016 +0000"
      },
      "message": "Change string compression encoding.\n\nEncode the string compression flag as the least significant\nbit of the \"count\" field, with 0 meaning compressed and 1\nmeaning uncompressed.\n\nThe main vdex file is a tiny bit larger (+28B for prebuilt\nboot images, +32 for on-device built images) and the oat\nfile sizes change. Measured on Nexus 9, AOSP ToT, these\nchanges are insignificant when string compression is\ndisabled (-200B for the 32-bit boot*.oat for prebuilt boot\nimage, -4KiB when built on the device attributable to\nrounding, -16B for 64-bit boot*.oat for prebuilt boot image,\nno change when built on device) but with string compression\nenabled we get significant differences:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: -28KiB\n    - 64-bit boot*.oat: -24KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: -32KiB\n    - 64-bit boot.oat: -28KiB\nThe boot image oat file overhead for string compression:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: before: ~80KiB after: ~52KiB\n    - 64-bit boot*.oat: before: ~116KiB after: ~92KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: before: 92KiB after: 60KiB\n    - 64-bit boot.oat: before: 116KiB after: 92KiB\n\nThe differences in the SplitStringBenchmark seem to be lost\nin the noise.\n\nTest: Run ART test suite on host and Nexus 9 with Optimizing.\nTest: Run ART test suite on host and Nexus 9 with interpreter.\nTest: All of the above with string compression enabled.\nBug: 31040547\n\nChange-Id: I7570c2b700f1a31004a2d3c18b1cc30046d35a74\n"
    },
    {
      "commit": "0d781e6e17a3f6285736c590001b59d50879f13b",
      "tree": "3a72db36bdd1b521f4f07005aa426515aa78f08a",
      "parents": [
        "66e4d7102760ddc9aa8a3f8463252d69c88b9864"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 04 11:09:53 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 08 14:45:40 2016 +0000"
      },
      "message": "MethodHandles: Constructor support\n\nTest: m test-art-host-run-test-956-methodhandles\nBug: 30550796\n\nChange-Id: Ied466d7e0f0f0b472e3a28909ca712dfdb99e422\n"
    },
    {
      "commit": "ba28f9f62f9908e04be3097f900db4701dd3d392",
      "tree": "86e4807d97e144812495706f7f9d0d2cfab96540",
      "parents": [
        "689a331aded82340d2ab144d0adb9bbbbd4b53ff"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 26 10:56:25 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 08 06:20:28 2016 +0000"
      },
      "message": "Argument conversions for setter/getter MethodHandles.\n\nTest: m test-art-host-run-test-959-invoke-polymorphic-accessors\nBug: 30550796\n\nChange-Id: I9898605fc9f9f8a80f47f9559f3ccb99b02b07c8\n"
    },
    {
      "commit": "e82809a2c8f26aee1e861724908f0257018cd064",
      "tree": "09eda3b77ebc26c80821778894b38345df85dd35",
      "parents": [
        "d4ede93561597f248cdd5687fcbf41a42ca4f824",
        "0a8485ef5cb81746625fe57acf8adfd8b2bb28c0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 04 11:48:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 04 11:48:48 2016 +0000"
      },
      "message": "Merge \"MethodHandles: Implement MethodHandle.asType.\""
    },
    {
      "commit": "0c14d8b10e8528f8143d9ed7f45da812fcd86885",
      "tree": "b22bed0bb98829b8db622f07054e74e8105feff6",
      "parents": [
        "4b2cdf8608c36fbf4304065cd17328cf1e99b49b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 03 12:01:24 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 03 16:40:51 2016 +0000"
      },
      "message": "ART: Additional initialization for MethodHandle accessors.\n\nEnsure classes are initialized before static fields are touched by\nMethodHandle setters and getters.\n\nBug: 30550796\nTest: m test-art-host-run-test-979-invoke-polymorphic-accessors\nChange-Id: Ibac4372607ecbb4e6f7347b89cef6d280632c835\n"
    },
    {
      "commit": "0a8485ef5cb81746625fe57acf8adfd8b2bb28c0",
      "tree": "e0d5384ad9b9ffcb549c0332a177d650614a6d3d",
      "parents": [
        "e5eb574f4c5c5afb7deb0c49d7f9eca2062347f5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 02 18:47:11 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 03 15:13:00 2016 +0000"
      },
      "message": "MethodHandles: Implement MethodHandle.asType.\n\nTracks libcore change 16fa583fb5ee489.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I2457b563f67a183c4eebf94ddbe74cc55f772ee0\n"
    },
    {
      "commit": "2ab98309c0fc7b3c7451205b2371db5c34b05d49",
      "tree": "9ad33fc4e6b165a28eec6a87a61f145765e9023e",
      "parents": [
        "de582c1d00b23afe239a9ed388e1ea0509b69d7f",
        "2cb856c47b884a08485e2f08e6a3ef6a5bbf773a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 03 13:04:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 03 13:04:40 2016 +0000"
      },
      "message": "Merge \"Address review comments from change 000e1885701c8f.\""
    },
    {
      "commit": "261c0690accc76bedb45e7a5afe649c2de48dcd8",
      "tree": "787f09cca93dd8a0f2d0e0a17b4f4fc6ef505cf7",
      "parents": [
        "c4005c3e71e98edd4a5a91c75dbee3d97b7dcda1",
        "84603bf8535ba8390e0461b9d9c7917939e26312"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 03 10:21:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 03 10:21:29 2016 +0000"
      },
      "message": "Merge \"MIPS32: Improve and moderately clean up mterp.\""
    },
    {
      "commit": "2cb856c47b884a08485e2f08e6a3ef6a5bbf773a",
      "tree": "13ba1e1bcab2057670626243c79daef54a20249c",
      "parents": [
        "bcc17bd8bb1e6375e5f39c9ec3df84c7e6b9600e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 02 12:01:26 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 02 17:08:33 2016 +0000"
      },
      "message": "Address review comments from change 000e1885701c8f.\n\nStyle fixes, and better OOM handling.\n\nbug: 30550796\nTest: make test-art-host\nChange-Id: I2ab58e25bd08daace6609ba45d860994a354280f\n"
    },
    {
      "commit": "84603bf8535ba8390e0461b9d9c7917939e26312",
      "tree": "1f7e00083b966f5d3c3d2a8f9802ee6d3350dfdc",
      "parents": [
        "1458e0c09fe0a3b9fa5fd7beb9b6077d1fc46b1d"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Oct 21 19:54:43 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Nov 01 13:57:36 2016 -0700"
      },
      "message": "MIPS32: Improve and moderately clean up mterp.\n\nImprovements:\n- use seb, seh, ins on R2+\n- use lsa, trunc.l.(s|d), cvt.(s|d).l, jic on R6\n- shorter float/double comparison\n- shorter float/double to int/long conversion\n- fewer memory reads in float/double to int/long conversion\n- remove unnecessary %break\u0027s and branches across breaks\n- use branch delay slots more efficiently on R2\n\nTest: booted MIPS32R2 in QEMU\nTest: test-art-target-run-test-interpreter (MIPS32R2) on CI20\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-run-test-interpreter (MIPS32R6) in QEMU\n\nChange-Id: I9959bec08e20c2423deae31f71b523ad36b4be9a\n"
    },
    {
      "commit": "3e0dce0ff7e28f756ec4b8a08259517e5fb3776d",
      "tree": "f27c7249d4319a174f31b95081f6670b6aa8446e",
      "parents": [
        "b24b0268b0f26af9d66ab0f163690d2b2164902b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 13:55:55 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 14:10:53 2016 +0000"
      },
      "message": "MethodHandles: Better detail message for WrongMethodTypeExceptions\n\nWe now include the type of the callee and the callsite.\n\nThis change also fixes a call to ThrowWrongMethodTypeException that\npassed arguments in the wrong order.\n\nTest: make test-art-host\n\nChange-Id: I3ced2e331cb49b616a8374f5a604dafa37330059\n"
    },
    {
      "commit": "6fcc5e8e0fb4298c83286ae5a5bcd0d06180f356",
      "tree": "57be97c726d69537350536413e4154733ed8aafa",
      "parents": [
        "bb04c9b9baa620d2664851f58f693e8aec0c0bc0"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 11:50:54 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 11:50:54 2016 +0000"
      },
      "message": "Interpreter: fix build.\n\nDue to unfortunate commit timing.\n\nTest: make build-art-host\nChange-Id: Ie523399309b20836ab9f7a8a8224c5cb41bc79fc\n"
    },
    {
      "commit": "bb04c9b9baa620d2664851f58f693e8aec0c0bc0",
      "tree": "7fe7db598e203f73ce0930a62ca23309d2e0daef",
      "parents": [
        "be92d691dd044dfc94a1c8e8793056776d55e826",
        "3d617ac3d87f7fa98793406818e54b057bd701a1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Oct 31 11:42:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 31 11:42:14 2016 +0000"
      },
      "message": "Merge \"Getter/Setter support for invoke-polymorphic of invokeExact().\""
    },
    {
      "commit": "3d617ac3d87f7fa98793406818e54b057bd701a1",
      "tree": "5230ceedfaf2928da0404fd71b64fa7f08439f21",
      "parents": [
        "b5cc1d1321e36d38cd48ae079438a8758b82edc1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 19 14:00:46 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Oct 31 09:16:19 2016 +0000"
      },
      "message": "Getter/Setter support for invoke-polymorphic of invokeExact().\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I427a6e0afba88b223655ad1ba30843aaf255182b\n"
    },
    {
      "commit": "000e1885701c8fdad07a784e3771881fa9be1d8a",
      "tree": "77d11180fb1d93903fa6c6cd58383d91a82affc5",
      "parents": [
        "b5cc1d1321e36d38cd48ae079438a8758b82edc1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 24 17:14:25 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 14:11:45 2016 +0100"
      },
      "message": "method_handles: Complete support for emulated stack frames.\n\nMost of this change is a refactor that templatizes the code\nthat performs argument conversions. This allows us to copy arguments\nbetween two shadow frames, or an emulated stack frame and a shadow\nframe.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I23e65735a2dbd28f3c7b7d1ccf9762e77e0cf1f1\n"
    },
    {
      "commit": "68e4f6b7db83241e0081787f9cdb4fa1465db313",
      "tree": "7e3fa108fe2884094a893abc5b587f4d2e11992a",
      "parents": [
        "c369f6b0cd132ab5bba3f127b162f128dd7d2599",
        "269cb43d6df76b52a42c1c7a9436c92bd0dcdad6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 11:49:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 28 11:49:26 2016 +0000"
      },
      "message": "Merge \"class_linker: Change allocation of MethodType dex_cache entries.\""
    },
    {
      "commit": "269cb43d6df76b52a42c1c7a9436c92bd0dcdad6",
      "tree": "6fb3dec2763ffdacdf1b31e4ed04c3f0c6cc5f81",
      "parents": [
        "d6435da102851e155acd12adc420e7df3db47903"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 10:19:54 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 11:48:49 2016 +0000"
      },
      "message": "class_linker: Change allocation of MethodType dex_cache entries.\n\nWe allocate them regardless of the value of the runtime flag to\navoid needing changes to the compiler etc. The memory hit can be\nmitigated in production systems that don\u0027t use MethodHandles by\nsetting kDexCacheMethodTypeCacheSize to 0.\n\nAlso, add DCHECKS in the interpreter to make sure the runtime\nnever executes an invoke-polymorphic instruction when method handles\nare disabled.\n\nTest: make test-art-host\nBug: 30550796\nChange-Id: Id4b2065d99dc13625a51037b7d1a9f0ac5ff6121\n"
    },
    {
      "commit": "c369f6b0cd132ab5bba3f127b162f128dd7d2599",
      "tree": "691b4ae4ca4da162d403d047095a82c18b5607bd",
      "parents": [
        "d6435da102851e155acd12adc420e7df3db47903",
        "a1aa3b1f40e496d6f8b3b305a4f956ddf2e425fc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 28 10:09:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 28 10:09:34 2016 +0000"
      },
      "message": "Merge \"Add support for Baker read barriers in UnsafeCASObject intrinsics.\""
    },
    {
      "commit": "a314773a624f9f51391be91bda3472bbdbe0050e",
      "tree": "11cd3182265c3426b00a34acc5c36961b351408f",
      "parents": [
        "e22305b8a093a892a10029e905064776fd2082c5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 22:57:02 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 23:18:55 2016 -0700"
      },
      "message": "Add handle wrapper for interpreter iget/iput quick\n\nJDWP has thread suspension in instrumentation listeners. The fix is\nto use handle wrappers here. This change fixes JDWP tests.\n\nBug: 31113334\n\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX64\u0027 --debug\n\nChange-Id: Ic7dcb1201ec44946e8002547b2f7f5645b4dea48\n"
    },
    {
      "commit": "e22305b8a093a892a10029e905064776fd2082c5",
      "tree": "45a0dba3b890d376c4cc2570101b46b2c45de1ee",
      "parents": [
        "061148025e3f6d1eb2e3c50a7756ff5fa2071ea2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 21:04:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 21:06:14 2016 -0700"
      },
      "message": "Add handle wrapper for DoCallCommon\n\nPrevents potential moving GC bugs from thread suspension caused\nby GetTypeItem. Fixes build-art.\n\nBug: 31113334\n\nTest: clean-oat-host \u0026\u0026 build-art \u0026\u0026 test-art-host\n\nChange-Id: I9ef18b1d1dab61cc86a7468d535972eba51763f5\n"
    },
    {
      "commit": "ef41db7a3f322a1feb305fdb457410c4cea94d00",
      "tree": "c03152c091ef62ab70f5be0a2fe3a965b189132c",
      "parents": [
        "1458e0c09fe0a3b9fa5fd7beb9b6077d1fc46b1d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 25 15:08:01 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 15:25:40 2016 -0700"
      },
      "message": "Move interpreter to ObjPtr\n\nMoved most of interpreter, interpreter_common,\ninterpreter_switch_impl, and some of mterp to ObjPtr.\n\nBug: 31113334\n\nTest: test-art-host ART_TEST_INTERPRETER\u003dtrue\nTest: art/tools/run-libcore-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I0935d18287e1332205c17c5a018aa167788ab897\n"
    },
    {
      "commit": "a1aa3b1f40e496d6f8b3b305a4f956ddf2e425fc",
      "tree": "efe3dd581dbe9fb33e615d1608f0571ec3984208",
      "parents": [
        "188edb3a3ec36ad5fc42373b1e1bed3a85b4f112"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 26 13:03:38 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 26 13:03:38 2016 +0100"
      },
      "message": "Add support for Baker read barriers in UnsafeCASObject intrinsics.\n\nPrior to doing the compare-and-swap operation, ensure the\nexpected reference stored in the holding object\u0027s field is\nin the to-space by loading it, emitting a read barrier and\nupdating that field with a strong compare-and-set operation\nwith relaxed memory synchronization ordering (if needed).\n\nTest: ART host and target tests and Nexus 5X boot test with Baker read barriers.\nBug: 29516905\nBug: 12687968\nChange-Id: I480f6a9b59547f11d0a04777406b9bfeb905bfd2\n"
    },
    {
      "commit": "c3b7f1a34667386a2e55f59db795082a9e2408fd",
      "tree": "6a454999907c9813d1d3c8e1ae4d3d50545fd4d2",
      "parents": [
        "75dccb7238714358fca9e5e993e4daabe24af085"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Oct 19 11:05:04 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Oct 26 09:53:40 2016 +0100"
      },
      "message": "Interpreter: Add support for method handle transforms [Part 1].\n\nMethod handle transformations are implemented in Java by\nsubclasses of java.lang.invoke.Transformers.Transformer. Transformer\nextends MethodHandle and provides a transformer method defined like so:\n\npublic static class TransformerImpl extends Transformer {\n    @Override\n    public void transform(EmulatedStackFrame emulatedStackFrame) throws Throwable {\n    }\n}\n\nAn EmulatedStackFrame is synthesized by the runtime based on the\ncaller stack frame and arguments specified by the instruction. It will\ncontain all input arguments to the method their associated types. It\nwill also exactly match the method type specified by the target handle\n(i.e, argument coversions are performed by the runtime).\n\nThe transformer method operates on supplied EmulatedStackFrame\nand other instance state to synthesize the transformation. In some\ncases, these transformations will end up calling other signature\npolymorphic methods. In those cases, the transformer can construct\nan EmulatedStackFrame and issue the invoke passing that through as\nthe single input argument. For e.g,\n\n  EmulatedStackFrame sf \u003d EmulatedStackFrame.newInstance();\n  sf.pushArgument(\"foo\", String.class);\n  sf.pushIntArgument(42);\n\n  // The callsite type for this polymorphic invoke is\n  // (Ldalvik/system/EmulatedStackFrame)V;\n  delegate.invoke(sf);\n\nThe runtime will treat such polymorphic invokes specially and unmarshal\nthis EmulatedStackFrame on to the callee stack frame based on the type\nand number of arguments contained in the EmulatedStackFrame and the\ndeclared type of the target method handle.\n\nIn this change :\n\nAdds the basic plumbing for transformer invokes. In particular, the code\nfor marshaling and unmarshaling emulated stack frames isn\u0027t implemented\nand will be added in a follow up method. This plumbing is sufficient to\nimplement a test case of a method handle transform that doesn\u0027t need any\ninput arguments, so is trivially implementable without proper\nEmulatedStackFrame support.\n\nbug: 30550796\nTest: make test-art-host\nChange-Id: Iafa29accaef26d0a33f8b83713bed5d929df547e\n"
    },
    {
      "commit": "da24650d142883ea9962eaedd479547bfe44bbf4",
      "tree": "74e7c0396a10bc8cdefab158414c56d407cf1ea6",
      "parents": [
        "dfe3ce6edaf65a11f35a0ba043fbc17fab7e0bad"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Oct 20 18:39:22 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 24 11:19:41 2016 +0100"
      },
      "message": "method_handles: Minor refactor of PerformArgumentConversions.\n\nSeparate out a method that can perform a single argument conversion.\nUseful for Field setters and also for future use in transforming handles\nwhere the input source will not be a stack frame.\n\nAlso remove unnecessary JValue* argument.\n\nbug: 30550796\nTest: make test-art-host\nChange-Id: I75a63800839dbf1016a2c362169e138c83f34e4c\n"
    },
    {
      "commit": "ec32b91cfa1061b2608838d41e6d7d70fdf681dc",
      "tree": "31d69c22423faf20aa72915f5c26fa7dc3213242",
      "parents": [
        "6c42676b466c4f08cfa6ca43da65bc74f48dc063"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 21 14:47:26 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 21 15:09:06 2016 +0100"
      },
      "message": "Remove read barrier in UnstartedUnsafeCompareAndSwapLong.\n\nart::interpreter::UnstartedRuntime::UnstartedUnsafeCompareAndSwapLong\nmanipulates a long field and does not need a read barrier\n(read barriers are only required when loading an object\nreference from the heap).\n\nTest: ART_USE_READ_BARRIER\u003dtrue make test-art-host\nBug: 12687968\nChange-Id: Ia46590e649a7bb46ca4b3c90bab03fb3a836563d\n"
    },
    {
      "commit": "a550ad9fe83872996eeeb59a3b01f008e326f0ba",
      "tree": "eed799c4db2df3548e666a5694a798f309f98c22",
      "parents": [
        "a8188191477b7b5b01a3c4426c51c48cd55f6678",
        "28d06c1f3d3613bfbe071161331a62446b3f67b1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 21 10:33:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 21 10:33:58 2016 +0000"
      },
      "message": "Merge \"MIPS32R6: Fix floating point compares in mterp.\""
    },
    {
      "commit": "28d06c1f3d3613bfbe071161331a62446b3f67b1",
      "tree": "dceb4932a482d58bec4247b816742a8ab8046abe",
      "parents": [
        "c6c5f6ce1c9cc44f859bbbc447478e4934be0fee"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Oct 20 21:50:05 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Oct 20 22:19:18 2016 -0700"
      },
      "message": "MIPS32R6: Fix floating point compares in mterp.\n\nThis fixes failures in the following tests:\n003-omnibus-opcodes\n082-inline-execute\n083-compiler-regressions\n107-int-math2\n422-type-conversion\n570-checker-select\n\nTest: \u0027run-test --interpreter \u003ctests above\u003e\u0027\n      in QEMU for MIPS64R6/MIPS32R6\n\nChange-Id: I11b4f1df7c212932c92d41fbc98c00465d03e850\n"
    },
    {
      "commit": "9bdaeebe6aca491b11a44999f571f0122ad87499",
      "tree": "23ae0638ba1f82fa2b9e01a03307e2c596b29dce",
      "parents": [
        "d08e39b6f02368aaa668b5aae6b6077b3eb44d9c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Oct 20 10:57:45 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Oct 20 11:14:53 2016 +0100"
      },
      "message": "Revert \"Revert \"Interpreter: Add support for direct handle invokes on methods.\"\"\n\nThis reverts commit cfa61ad52077df66a448b84c360b12bc6f0e3f51.\n\nTest flakiness in 956-methodhandles is fixed by\nd08e39b6f02368aaa668b5aae6b6077b3eb44d9c.\n\nTest: make test-art-host\n\nChange-Id: I56e02e9a5bbc2b992cf746a92fd95ea77d32456c\n"
    },
    {
      "commit": "709b070044354d9f47641f273edacaeeb0240ab7",
      "tree": "3a8ac051d7c35076303984d0d892cdd396b60427",
      "parents": [
        "1a4de6a2453a3ad0310aca1a44e7e2d3b6f53bc1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 13 09:12:37 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 18 14:10:04 2016 -0700"
      },
      "message": "Remove mirror:: and ArtMethod deps in utils.{h,cc}\n\nThe latest chapter in the ongoing saga of attempting to dump a DEX\nfile without having to start a whole runtime instance.  This episode\nfinds us removing references to ArtMethod/ArtField/mirror.\n\nOne aspect of this change that I would like to call out specfically\nis that the utils versions of the \"Pretty*\" functions all were written\nto accept nullptr as an argument.  I have split these functions up as\nfollows:\n1) an instance method, such as PrettyClass that obviously requires\nthis !\u003d nullptr.\n2) a static method, that behaves the same way as the util method, but\ncalls the instance method if p !\u003d nullptr.\nThis requires using a full class qualifier for the static methods,\nwhich isn\u0027t exactly beautiful.  I have tried to remove as many cases\nas possible where it was clear p !\u003d nullptr.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I21adee3614aa697aa580cd1b86b72d9206e1cb24\n"
    },
    {
      "commit": "bc5a795c0d486c84913d987cad5846ded840cea6",
      "tree": "90db29a97a21fa15f4cbc5ffbc1f6dd191add49c",
      "parents": [
        "38a4223fcc0493553d9ad324a1dc145869eb663a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 15:46:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 16:16:50 2016 -0700"
      },
      "message": "Move art/native to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I67eb89cf042c762c6dcd5eb8b008b9a28e9b3319\n"
    }
  ],
  "next": "5d3f73aef1b778d81ba101ece41935adee259cf2"
}
