)]}'
{
  "log": [
    {
      "commit": "9fd8c60cdff7b28a89bb97fd90ae9d0f37cf8f8b",
      "tree": "630b6f23441a26e4b5d9434900993a710635c9e9",
      "parents": [
        "26c8f54be31ccf99540906746b17fc8bba1bab9a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 14 14:38:53 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 13:02:24 2016 -0800"
      },
      "message": "Pass object instead of class to instanceof entrypoint\n\nReduces code size. Also avoid read barrier for kArrayCheck case.\n\nBug: 32577579\n\nTest: test-art-host, test-art-target CC\n\nChange-Id: Ia890f656fe166b2d39c522b63a8a6469404134ae\n"
    },
    {
      "commit": "b99f4d6463e7cb5654af3893ed7b3113665df658",
      "tree": "1bacc6a2bd01426c921e2f83f39bb63f9d9d8048",
      "parents": [
        "67381d6298edf18760b0c9b3d16572dc3894e551"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 07 16:17:26 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 08 12:46:59 2016 -0800"
      },
      "message": "Change check cast entrypoint to check instance of\n\nReduces code size since we do not need to reload class before\ncalling slow path.\n\nTODO: Delete read barriers in the check cast code since the slow\npath will retry with the proper read barriers if the check fails.\n\nBug: 12687968\nBug: 29516974\n\nTest: test-art-host + test-art-target with CC\n\nChange-Id: Ia4eb9bbe3fe2d2016e44523cf0451210828d7b88\n"
    },
    {
      "commit": "12b58b23de974232e991c650405f929f8b0dcc9f",
      "tree": "bc08011e3b9f4c132fc605dc54d1d5f50c932a29",
      "parents": [
        "b0b2080b4cea8365052d1be973e927f8ee85f609"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Nov 01 11:55:29 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 02 16:31:04 2016 -0700"
      },
      "message": "Clean up the runtime read barrier and fix fake address dependency.\n\n- Rename GetReadBarrierPointer to GetReadBarrierState.\n- Change its return type to uint32_t.\n- Fix the runtime fake address dependency for arm/arm64 using inline\n  asm.\n- Drop ReadBarrier::black_ptr_ and some brooks code.\n\nBug: 12687968\nTest: test-art with CC, Ritz EAAC, libartd boot on N9.\nChange-Id: I595970db825db5be2e98ee1fcbd7696d5501af55\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": "5b6fbd02f03fd41829c7dd4bfce97a62346be854",
      "tree": "bc1c72e0ac46d4e1c630e11fdf6ee8ba668cdf77",
      "parents": [
        "3e653ff5d455a79b5fc8e272c622dd472fafd422",
        "9d7ef62b854289632791a83223c1a5a5b3c8fc64"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 25 15:18:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 25 15:18:14 2016 +0000"
      },
      "message": "Merge changes Iae3a933e,I08ff5d6e\n\n* changes:\n  ART: Make IndirectReferenceTable resizable\n  ART: Change IndirectReferenceTable\n"
    },
    {
      "commit": "1bc4b178590fa204265363a0207f1388e8bd6d15",
      "tree": "791fd12e3fac0c9c4ec260233d471d8a97cca5ca",
      "parents": [
        "3667e26de4856cccf24bcbab54ad3349a05267c0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 24 16:53:39 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 25 10:01:08 2016 +0100"
      },
      "message": "Revert \"Disable kBssEntry LoadString sharpening.\"\n\nFix .bss GC root walking by registering the oat file\nwith the class loader\u0027s class table.\n\nAlso fix potentially outdated ObjPtr\u003c\u003e use in debug build.\n\nThis reverts commit b55fdbb30b3bc4e334c241153b98c0a6ea4a4a2b.\n\nTest: m test-art-host\nBug: 32124939\nChange-Id: I0b7e3b93cb53c7b22408aa10a04eaf5582c69ee8\n"
    },
    {
      "commit": "e03662b71bbb4d262af0840bf90ce4fc84750b43",
      "tree": "0d89f7d90a46a7a2f8d120e3b0aabf3e1d277004",
      "parents": [
        "dc061d038e4e48fe2a967fd4a9c200d112df5698"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 13 17:12:56 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 24 19:16:54 2016 -0700"
      },
      "message": "ART: Change IndirectReferenceTable\n\nChange cookie structure to allow for more entries. Use a local\nhole-count caching scheme. The design is driven by two\nconsiderations. For one, the change is small and mostly local.\nThe other point is to still allow inlining of functions involved\nwith JNI transitions.\n\nThis change is in preparation for a resizable backing table for\n\"unlimite\" local references.\n\nmicro_native tests show changes are in the noise.\n\nBug: 32125344\nTest: m test-art-host\nChange-Id: I08ff5d6eaed75d13ec88f469fb0d18328a0eeb70\n"
    },
    {
      "commit": "024662a3102df92fabf4f40d9ec40976f8e20c5d",
      "tree": "248a072ebfa8e3a7897ad08f819456f28e47c0bc",
      "parents": [
        "4a4ff643b629b268787fb97648116e1ac391f53b",
        "af1e2990cd1406a0fb7cba1d2e208208e950e413"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 20 14:41:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 20 14:41:18 2016 +0000"
      },
      "message": "Merge changes I16f8b7ec,I075bbf55\n\n* changes:\n  jni: Support @FastNative methods that return objects\n  Revert \"jni: Disable FastNative path for methods returning objects\"\n"
    },
    {
      "commit": "d985a5a81a45595f5cb4d12da81eec760801c92c",
      "tree": "3d49d34870ddb439596321e6e6577845e97c61ac",
      "parents": [
        "b5706dd4e86c3687153a02fdda715e40f69c55d1",
        "94ce9c2f41ea198f5fdcfc09c48b9984c95a9c61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 20 09:24:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 20 09:24:03 2016 +0000"
      },
      "message": "Merge \"Change pResolveString entrypoint to kSaveEverything.\""
    },
    {
      "commit": "af1e2990cd1406a0fb7cba1d2e208208e950e413",
      "tree": "07e80e4dcc31931003a87be7884134ea42ceec07",
      "parents": [
        "3f699ae23266b2c4adc98958dcbd80c71c2c3284"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 12 17:44:50 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 19 11:38:54 2016 -0700"
      },
      "message": "jni: Support @FastNative methods that return objects\n\nBug: 32088975\nChange-Id: I16f8b7ec6b251812af60ab25f2153d9b72f37044\n"
    },
    {
      "commit": "94ce9c2f41ea198f5fdcfc09c48b9984c95a9c61",
      "tree": "8dcaf27e8b34f51f5849b1e8d4366968f9bae849",
      "parents": [
        "2f61867045ffbd0c38a4ecec5f59632004f7efff"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 14:50:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 19 18:02:48 2016 +0100"
      },
      "message": "Change pResolveString entrypoint to kSaveEverything.\n\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Run ART test suite including gcstress with baker CC on host and Nexus 9.\nBug: 20323084\nChange-Id: I63c21a7d3be8ff7a5765b5003c85b5317635efe6\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": "174d17b2f70f009d5fa349bb94b1703297c36ec4",
      "tree": "a73a00338e48376a0d68da19b3075eadfc5c109d",
      "parents": [
        "8c0fee9ca38ea1b4ee6a8ab72c5f9c0ba924761f",
        "82f3a20b1f51b17b432d5164d5109abeb1b5a947"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 17 15:08:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 17 15:08:21 2016 +0000"
      },
      "message": "Merge \"Add DCHECK() for class loader in artResolveStringFromCode().\""
    },
    {
      "commit": "043eb9a4496cacaffe60f381c5686c989cb5d701",
      "tree": "42f89fbff75828cc962992000fa6f018fb46caa4",
      "parents": [
        "cfdff144f154df876987fefb340058a975c43381"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Oct 14 11:21:38 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Oct 14 13:04:25 2016 -0700"
      },
      "message": "Add a mark bit check in the read barrier jni entrypoint.\n\nBug: 30437917\nBug: 12687968\nTest: test-art host/N9, N9 libartd boot, Ritz EAAC.\nChange-Id: Ic5f8080959f243e80f00da73ba5f4b91a8d8b617\n"
    },
    {
      "commit": "82f3a20b1f51b17b432d5164d5109abeb1b5a947",
      "tree": "9abd1c854225b419d4bf7c1f5e75edd74a6970be",
      "parents": [
        "4aed412037e6e7bad2cf589645449df960b88200"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 14 16:28:52 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 14 16:28:52 2016 +0100"
      },
      "message": "Add DCHECK() for class loader in artResolveStringFromCode().\n\nAddress late comment from\n    https://android-review.googlesource.com/281642\n\nTest: m test-art-host\nBug: 20323084\nBug: 30627598\nChange-Id: I3ba2617d2bc52ac8ba11307d206e6f5e6c017fb7\n"
    },
    {
      "commit": "1a5337fff2cc6cb9d563c8b32aca75f485d23373",
      "tree": "03616e90a91c5c4c1bd7ff03c3d193c3b24bf0db",
      "parents": [
        "c8b722b3cebff245d614e95d1849de45ef7bdf06"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 13:48:23 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 17:37:56 2016 -0700"
      },
      "message": "Move mirror::ObjectArray to ObjPtr\n\nAlso reduce calls to ObjPtr::Ptr.\n\nBug: 31113334\n\nTest: test-art-host -j32\n\nChange-Id: I73e1b356972bb079b66332f00f7f07451601044e\n"
    },
    {
      "commit": "9d156d500801accee919b6d51e22d6ddcdcd4a05",
      "tree": "92129562c0ba1673c660297f26444a4a2ad31459",
      "parents": [
        "078483d4dfd049d5b3f192a99e2dfdc355e4754f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 17:44:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 09:49:49 2016 -0700"
      },
      "message": "Move Heap parameters to ObjPtr\n\nDeleted some unused object dumping code.\n\nTest: test-art-host\n\nBug: 31113334\n\nChange-Id: I747220caafe6679591fd4b361d7f50383a046164\n"
    },
    {
      "commit": "1506bf332232907016fe3fcb3956c9d4b064b482",
      "tree": "f8a5c83a5c0ae627f8469b18743aa18d47719f54",
      "parents": [
        "5065b09332328477d489b8ce26c3a1381e6f8d49"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Oct 10 19:12:09 2016 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Oct 10 19:15:56 2016 +0200"
      },
      "message": "Add missing cases in quick_trampoline_entrypoints_test for MIPS64\n\nTest: mma test-art-target-gtest-quick_trampoline_entrypoints_test\nChange-Id: I4596d47f7219b375a60d6b9d80f797d1f01facd7\n"
    },
    {
      "commit": "c4f3925490a73da8dc74884a1deb965d4ecaf14e",
      "tree": "7fe566827f8ab903af1acb5697c86a6efe3187b3",
      "parents": [
        "18f7de841fee3ca6f0c04e7caa57c3ce76b36231"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 18:32:08 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 13:55:58 2016 -0700"
      },
      "message": "Move remaining jobject related functions to use ObjPtr\n\nAlso added ObjPtr::DownCast.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I59c253211dc435579ffdfd49f856861ab13d262c\n"
    },
    {
      "commit": "1432a5bb0608a920e7281b38ee5f6e8dfcfae5ef",
      "tree": "804b9e78fa9d2705a1e58571944af7381858a5b0",
      "parents": [
        "4aa6a93c46a959df1ab71ee7a68ad345338046ef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 15:41:42 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 09:43:15 2016 -0700"
      },
      "message": "Don\u0027t push handle scope for critical native generic JNI\n\nLeaving a stale handle scope causes problems for the GC the next\ntime roots are visited. At this point the stack will have other\ncontents and the GC will attempt to mark many invalid roots.\n\nBug: 31933313\n\nTest: non preopt eng build booting.\nTest: test-art-host\n\n(cherry picked from commit 92879f9bbcfc034660ed1ff5ef741d7f2bcb116f)\n\nChange-Id: I7d57964ccd2b59a05bb06f67062f646362ce1204\n"
    },
    {
      "commit": "556c9a2f182c4fcb9eba9dc4937095665f314a2b",
      "tree": "ffe6d3711b565330fb883953144ddd7603356804",
      "parents": [
        "e793bbb4a8a832423e7d6150b6a8fad75d63d36e",
        "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 00:39:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 00:39:08 2016 +0000"
      },
      "message": "Merge \"Rename ObjPtr::Decode to ObjPtr::Ptr\""
    },
    {
      "commit": "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04",
      "tree": "718e322f3d05ac095770d4dc2a68b824bf3974a7",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 18:01:28 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 10:46:16 2016 -0700"
      },
      "message": "Rename ObjPtr::Decode to ObjPtr::Ptr\n\nDone to prevent ambiguity with ScopedObjectAccess::Decode.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I07a2497cc9cf66386311798933547471987fc316\n"
    },
    {
      "commit": "aad75c6d5bfab2dc8e30fc99fafe8cd2dc8b74d8",
      "tree": "c1b9e1eabcf35c5cbb5b4f46313a4e062f2d5d51",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 03 08:46:48 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 17:51:46 2016 +0100"
      },
      "message": "Revert \"Revert \"Store resolved Strings for AOT code in .bss.\"\"\n\nFixed oat_test to keep dex files alive. Fixed mips build.\nRewritten the .bss GC root visiting and added write barrier\nto the artResolveStringFromCode().\n\nTest: build aosp_mips-eng\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-target-host-gtest-oat_test\nTest: Run ART test suite on host and Nexus 9.\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 5f926055cb88089d8ca27243f35a9dfd89d981f0.\n\nChange-Id: I07fa2278d82b8eb64964c9a4b66cb93726ccda6b\n"
    },
    {
      "commit": "3398c7874e002beaa6c2b2fadf183e7d1ddad23a",
      "tree": "7db754b5b0c3a6c68bc1f91d7cb2477f534d2ad3",
      "parents": [
        "462e21cc8d28a4d48342cf0f634bd1ecc63647d7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:27:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 14:06:27 2016 -0700"
      },
      "message": "Move ArtField to ObjPtr\n\nAdded EXPECT_OBJ_PTR_EQ and variants to gtests.\n\nFixed moving GC bugs in:\nClassLinker::CreatePathClassLoader\nClassLinkerTest: StaticFields\n\nObjPtr Decode call sites: 186 -\u003e 181.\n\nSome tests fail due to ResolvedFieldAccessTest, will fix in follow\nup CL.\n\nBug: 31113334\n\nTest: test-art-host CC baker\n\nChange-Id: I8b266ad00f3c20c8cbe7cfdf280d175083df0b88\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "75a7db67f0e56bc0ccc63df4a6a1bb04ab3e86b1",
      "tree": "2d426df6f2807606811c45ae22597e2098dd8a2f",
      "parents": [
        "fd8339e58e3c09097165feeed7a2d70482d40130"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 12:04:26 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 28 09:00:08 2016 -0700"
      },
      "message": "ART: Factor out IMT from ArtMethod\n\nMove IMT Conflict Table to its own file. Move IMT index computation to\nImTable.\n\nIn preparation for code using this independent of specific ArtMethods.\n\nBug: 31594153\nTest: m test-art-host\nChange-Id: Ifd6e304bb86724c5284984c4655c43d3af357f84\n"
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "06a04e0e776875303577c2d871b53a53c78da1b5",
      "tree": "6f8b38fa918f49cc502b573c96d9a6338ad343df",
      "parents": [
        "48d10ee126838f060aa6dcd304fc161b57bc14af"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Sep 13 15:57:37 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 21 13:32:00 2016 -0700"
      },
      "message": "jni: Implement generic JNI support for @CriticalNative/@FastNative\n\nAlso:\n* Extend existing test cases to check generic JNI for the above.\n* Re-enable previously blacklisted @CriticalNative JNI run-tests.\n\nBug: 31400248\nChange-Id: I436ed00c8b8880e936a0c3483bc0dc251f0c0ce2\n"
    },
    {
      "commit": "91a6516103b8bf8bb75c3a2840cbdec7521e74a7",
      "tree": "d93043f578bfa5b8d76e8c175e6441b378c4a7b2",
      "parents": [
        "6a4abc633fa8580b06056ec6f80ced8ce7511277"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 13:54:30 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 13:54:30 2016 +0100"
      },
      "message": "Remove the `CanTriggerGC` side-effects on a few instructions.\n\nThe side-effect was specified for these instructions as they call\nruntime. We now have a list of entrypoints that we know cannot trigger\nGC. We can avoid requiring the side-effect for those.\n\nTest: Run ART test suite on Nexus 5X and host.\n\nChange-Id: I0e0e6a4d701ce6c75aff486cb0d1bc7fe2e8dda4\n"
    },
    {
      "commit": "be08cf5782c04d876d38be8b8d1caf1b4c3fbe55",
      "tree": "3efb73eb12ccb967003157d30670c5a283ddc8b4",
      "parents": [
        "32772cbdbcb35f5475b01f31314a3c7289bdb589"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 13:41:24 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 14 16:53:11 2016 -0700"
      },
      "message": "Fix moving GC bugs in entrypoints\n\nIn FindMethodFromCode, there was missing handles for objects used\nafter a suspend point (ResolveType).\n\nFor check_jni, JniMethodEndWithReferenceHandleResult did not\nhandlarize the return value when calling CheckReferenceResult.\n\nFor CheckReferenceResult, the argument was not in a handle.\n\nBug: 31458474\nChange-Id: I06617fc63f1fb63d7c13ad4245223a8c54fa4b98\n"
    },
    {
      "commit": "05846475c8d48ce191dcd333c76d5ccc17aea9dd",
      "tree": "bfbcbba324eda45fae27b31ce0ce589c5f472474",
      "parents": [
        "e305eaf2c08a203e3e046c3a8608b90b9dc5a080"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:49:57 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:55:09 2016 +0100"
      },
      "message": "Remove ThrowNoSuchMethod entrypoint.\n\nRun ART test suite on host and Nexus 6.\nBug: 31464666\nChange-Id: I5aa737726031adae0b132f759cf802a93d581a7f\n"
    },
    {
      "commit": "cf8b2fa07572513cb01d5cba99cb3b4da8c7f43e",
      "tree": "38ffb3320dedac9d4fe64b901a8d601bfddde4b3",
      "parents": [
        "ebb7b22f4e227176eca40a554990a8e89e283fcf",
        "fc734088e6656a918b6c75094eb942a22bd799e8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 05 12:54:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 05 12:54:43 2016 +0000"
      },
      "message": "Merge changes I3f825746,Ia4284ccd,I437ffd43\n\n* changes:\n  Extend the InvokeRuntime() changes to mips64.\n  Extend the InvokeRuntime() changes to mips.\n  Extend the InvokeRuntime() changes to x86 and x86_64.\n"
    },
    {
      "commit": "3a21e386fa55a8b86dffa5250985b263fcfd2155",
      "tree": "ce6fecaae067f86e094ae7844ee5fa4ae8ee63e8",
      "parents": [
        "f94a4cf18946bda4a4f19378436d2bf131a492ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 12:38:38 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 15:15:28 2016 +0100"
      },
      "message": "Clean up some includes.\n\nRemove some unnecessary includes from header files, replace\nothers with forward references and add includes to source\nfiles as needed. Reduce dependency on stack.h by pulling\nStackReference\u003c\u003e out to its own file.\n\nTest: m test-art-host\nChange-Id: I0fb182145e328870cbd918b0ef6ae2950223c1b2\n"
    },
    {
      "commit": "3d08238729dedecba73ddc0b42bc6bbf4806ecae",
      "tree": "92989553b03c704f79e2aae907b3b10479bc830e",
      "parents": [
        "081e7a16c4fcbdb014441a236e12f58eb89ff99a",
        "bdf7f1c3ab65ccb70f62db5ab31dba060632d458"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 31 17:49:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 31 17:49:55 2016 +0000"
      },
      "message": "Merge \"ART: SHARED_REQUIRES to REQUIRES_SHARED\""
    },
    {
      "commit": "fca16663334e5838790631d8eac95f4ffdb0cc2e",
      "tree": "2a1f018b428ef0f4097004af92ab44c82e987d12",
      "parents": [
        "ba45db072c48783e19a2a73ab4e45ae143c1c7c9"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@linaro.org",
        "time": "Thu Jul 14 09:21:59 2016 +0100"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@linaro.org",
        "time": "Wed Aug 31 17:22:54 2016 +0100"
      },
      "message": "Extend the InvokeRuntime() changes to mips.\n\nAlso fix the side effects for \u003cStatic/Instance\u003eField\u003cGet/Set\u003e.\n\nTest: test-art-target\n\nChange-Id: Ia4284ccd9d0c88210eaa4458f74728c805e2e076\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "da8ffec70e9019fe1208ac38444a7048958fc206",
      "tree": "a6dc41bc2dfe6c5afc6fcc3bdd77c35063ad4e6a",
      "parents": [
        "c0ee1f5af12298e11aaadab4c9838b2f1395972e"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@linaro.org",
        "time": "Wed Mar 09 12:02:11 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 26 16:07:58 2016 +0100"
      },
      "message": "Add entrypoint type information.\n\nFor some of the runtime calls we do not need to generate stack maps. For\nexample, the Optimizing compiler implements HRem Floating Point by\ncalling libm\u0027s fmod().\n\nSince this is a leaf method that does not suspend the execution, we do\nnot need to treat the fmod() invoke as a possible suspend point and thus\nwe do not need to create a stack map for the particular PC.\n\nFor now conservatively only tag the maths runtime entrypoints with this\ninformation.\n\nTest: m test-art-target\nChange-Id: Iab73dcf8047d2edaa7a570113ee792e46ccbc464\n"
    },
    {
      "commit": "9231f4e55d6e79e37880071e222c28141bf65f49",
      "tree": "929c75752d7dd5d667b5f2cdaa044ad83d0522eb",
      "parents": [
        "e99331f7a430b0b72142dd0b8b0689421489dcf6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 23 17:35:19 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 23 18:20:12 2016 -0700"
      },
      "message": "ART: Remove vestiges of GCC\n\nWe no longer support GCC.\n\nChange-Id: I869ac6e5dcb166747e45236a0d313c7672bbf2de\nTest: m test-art-host\n"
    },
    {
      "commit": "9d4b6da934934c322536ee3309b63ce402740f49",
      "tree": "9e7ee5023d6036b98e0560411bb0527efdedca01",
      "parents": [
        "2af1aa066e3d20edd8fea5d5b6dbbbad73102d52"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:51:58 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 16 20:19:36 2016 +0000"
      },
      "message": "jni: Fast path for @FastNative annotated java methods\n\nAdds a faster path for java methods annotated with\ndalvik.annotation.optimization.FastNative .\n\nIntended to replace usage of fast JNI (registering with \"!(FOO)BAR\" descriptors).\n\nPerformance Microbenchmark Results (Angler):\n* Regular JNI cost in nanoseconds: 115\n* Fast JNI cost in nanoseconds: 60\n* @FastNative cost in nanoseconds: 36\n\nSummary: Up to 67% faster (vs fast jni) JNI transition cost\n\nChange-Id: Ic23823ae0f232270c068ec999fd89aa993894b0e\n"
    },
    {
      "commit": "fd36f1f927c138575184a1f4c7ea4e7abb3e2dbf",
      "tree": "2debb35c9193ac019071e0625986698ccbcaabb8",
      "parents": [
        "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 03 18:49:58 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 10 14:19:49 2016 +0100"
      },
      "message": "Rename callee save enumerators.\n\nAnd related image method enumerators, macros, etc.\nClean up some entrypoint assembly comments.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/252348\n\nTest: Run ART test suite on host and Nexus 9.\nBug: 30212852\nChange-Id: I2707342d4255c88c547655be83ed97a67e12ae9e\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "d22b69a12777014a92a3551eba65a4c69f2800b2",
      "tree": "9610ef0db5bdd3b21bfcfa4de2f1f3328b928f5b",
      "parents": [
        "e3051bf60783fa18e6f8c7ac6f73091f05af5665",
        "d549c28cfbddba945cb88857bcca3dce1414fb29"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:20:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 16:20:19 2016 +0000"
      },
      "message": "Merge \"Remove two ReadBarrierMarkRegX entrypoints.\""
    },
    {
      "commit": "e01e3644205c3644546889237c20185391a0092e",
      "tree": "413fcf279b415a305605a601297e3856f13a2948",
      "parents": [
        "de4cf16f467b531373560ca6eb785f0f36606aae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 13:06:04 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 13:09:41 2016 -0700"
      },
      "message": "ART: Add pointer-size template to some reflection functions\n\nThe unstarted runtime may run code for a different pointer size,\neven when no transaction is active (e.g., during startup). To\nretain performance when the runtime is up and executing under\nnormal conditions, add a template parameter and use sizeof(void*)\nin places where it is adequate.\n\nFor maintainability, it is necessary to drop the default for\nthe transaction template parameter. Implicit conversions from\nbool to size_t may lead to incorrect code and hard to diagnose\nproblems. So instead ensure that all callers must give all\ntemplate parameter values.\n\nTest: m test-art-host\nChange-Id: I3076883422c8553ede4de5642409c5684a5a9aa8\n"
    },
    {
      "commit": "d549c28cfbddba945cb88857bcca3dce1414fb29",
      "tree": "584d765beea2cd6ceb4d56789ccc5c8f64db967e",
      "parents": [
        "9e27d02040ff87eb8e2d56d21347a77cb800eddf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 25 12:49:15 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 25 12:49:15 2016 +0100"
      },
      "message": "Remove two ReadBarrierMarkRegX entrypoints.\n\nAs entry points ReadBarrierMarkReg30 and\nReadBarrierMarkReg31 are undefined on all architectures\nsupporting the read barrier configuration (ARM, ARM64, x86\nand x86-64), remove them from the entry point list.\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 29506760\nBug: 12687968\nChange-Id: I500626e54f00aebfc095b4ef5f81b49fa43f7768\n"
    },
    {
      "commit": "e4b1c86d13c3f60362708f4a128b62db156f5fde",
      "tree": "4920c33f3510a21dba212650659174a7bb44c855",
      "parents": [
        "ce1ba111bfa122247ac186e7d2c6cf5943ba28cd",
        "465ecc86ff65ca546629630c9469deb6d2d8137e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 21 00:04:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 00:04:52 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Refactor GetIMTIndex\"\"\""
    },
    {
      "commit": "6740997e6934bbca27d5830a32352d82aabbd38b",
      "tree": "684ab2e46ddeaaf251fb6919bf64295810e46afa",
      "parents": [
        "dc4f4d42aa1712a7ac2e4c24c0aebe58b71ae2c0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 19 22:34:53 2016 -0700"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 20 11:44:25 2016 +0100"
      },
      "message": "ART: Change return types of field access entrypoints\n\nEnsure that return types guarantee full-width data as the compiled\ncode and mterp expect by using size_t and ssize_t.\n\nThis fixes Clang no longer sign-/zero-extending small return types.\n\nBug: 30232671\nTest: m ART_TEST_RUN_TEST_NDEBUG\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host-run-test\nChange-Id: Ic505befc6c94e2dccbc8abf2b13d4c2d662e68d1\n"
    },
    {
      "commit": "465ecc86ff65ca546629630c9469deb6d2d8137e",
      "tree": "3a0ed3f2d3ab9fd2cffec44a659036efab35fb4e",
      "parents": [
        "bae13af2fc2fa89985d0466cedf155cb96767910"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jul 19 21:32:52 2016 +0000"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jul 19 21:48:06 2016 +0000"
      },
      "message": "Revert \"Revert \"Refactor GetIMTIndex\"\"\n\nOriginally reverted in order to revert\nhttps://android-review.googlesource.com/#/c/244190/\nbut can now be merged again.\n\nThis reverts commit d4ceecc85a5aab2ec23ea1bd010692ba8c8aaa0c.\n\nTest: m test-art-host\n\nChange-Id: Id9205f2b77a378fc0f06088e78c66e81a49f712d\n"
    },
    {
      "commit": "2c30a373428b8d19bf97866d5d323c4ca2fbca72",
      "tree": "8927430b0ae7185b0583615e8dbd7481ac13c6c7",
      "parents": [
        "7598736db0647eb963e77fafc22af6c0a5747d20",
        "02b75806a80f8b75c3d6ba2ff97c995117630f36"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 14 09:32:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 14 09:32:34 2016 +0000"
      },
      "message": "Merge \"Introduce more compact ReadBarrierMark slow-paths.\""
    },
    {
      "commit": "02b75806a80f8b75c3d6ba2ff97c995117630f36",
      "tree": "ecdb1852c3e33f120110091cc2d07a9737fbd3b5",
      "parents": [
        "5f485719b166ceb8e591329d40e76c5e50988022"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 13 11:54:35 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 13 11:54:35 2016 +0100"
      },
      "message": "Introduce more compact ReadBarrierMark slow-paths.\n\nReplace entry point ReadBarrierMark with 32\nReadBarrierMarkRegX entry points, using register\nnumber X as input and output (instead of the standard\nruntime calling convention) to save two moves in Baker\u0027s\nread barrier mark slow-path code.\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 29506760\nBug: 12687968\nChange-Id: I73cfb82831cf040b8b018e984163c865cc44ed87\n"
    },
    {
      "commit": "83e4903f9f966b52d758b52ac1d522e13fd43e60",
      "tree": "966df75b9d69f43bb18ece89b1ef16db6c546e45",
      "parents": [
        "dadc075149eb322bf28ba35a75a70157147c1c30",
        "a62cb9bb6cb2278cb41ab0664191623e178c6a4f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jul 08 20:06:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 08 20:06:58 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Optimize IMT\"\"\""
    },
    {
      "commit": "a62cb9bb6cb2278cb41ab0664191623e178c6a4f",
      "tree": "62263dac644e2d80a34a04f2649e4741a1bed6f4",
      "parents": [
        "bb8d501c9bb882a8927c6ceda07bf9577e06c3e1"
      ],
      "author": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Jun 30 09:18:25 2016 +0000"
      },
      "committer": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Jul 07 10:01:04 2016 +0000"
      },
      "message": "Revert \"Revert \"Optimize IMT\"\"\n\nThis reverts commit 88f288e3564d79d87c0cd8bb831ec5a791ba4861.\n\nChange-Id: I49605d53692cbec1e2622e23ff2893fc51ed4115\n"
    },
    {
      "commit": "5bf7bacc0993a2efd9b0765813928ff72ea4bb9f",
      "tree": "c8d6df8d62ea03664199420d2866cb66c3fdf945",
      "parents": [
        "a5f0a1ab3f632f1e9c0bc048604aa0c0e98a4a93"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 06 14:18:23 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 06 15:50:18 2016 +0100"
      },
      "message": "Revert \"Revert \"Inline and optimize interface calls.\"\"\n\nThis reverts commit 19dc255bf94a4229de8627a2079ee6f0e9005e2d.\n\nChange-Id: Ifc3a92280878d4db1b460d486137497b3456beae\n"
    },
    {
      "commit": "19dc255bf94a4229de8627a2079ee6f0e9005e2d",
      "tree": "38ce4ec6ab0ae5ed99f16c695441135fd36d26dd",
      "parents": [
        "d9faceaa8da92f4a56c2907de949081bd42faf79"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 06 14:01:50 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 06 14:01:50 2016 +0000"
      },
      "message": "Revert \"Inline and optimize interface calls.\"\n\nWent ahead too quickly.\n\nThis reverts commit d9faceaa8da92f4a56c2907de949081bd42faf79.\n\nChange-Id: I1610deaf89b38037cf2786d135a59c48b10ced0c\n"
    },
    {
      "commit": "d9faceaa8da92f4a56c2907de949081bd42faf79",
      "tree": "2efc00cfe8d5211e420174db81e732f8e92cbb33",
      "parents": [
        "74c0d1bb67f9c6ee8306f0318ab7251d56dc99d6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 06 10:19:23 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 06 13:30:13 2016 +0100"
      },
      "message": "Inline and optimize interface calls.\n\n- Support for inlining methods with invoke-interface (the\n  previous performance limitation is now fixed with the new\n  ImtConflictTable).\n- Turn non inlineable invoke-interface into invoke-virtual to\n  avoid any potential execution of the conflict trampoline.\n\ntest:609-checker-inline-interface\n\nChange-Id: Ibe33bc945deaada8fb78541e6e0bf034ebb52420\n"
    },
    {
      "commit": "fdbc39551e08fa6a17e1b4bf6904860ccc052aa2",
      "tree": "0ade9d5225b067f4d0369e5369975c1e8d9f345f",
      "parents": [
        "34bccc1d85787658a5d04d2caa52b6eeca18710f",
        "e8e1127da3f154fae8d2eb16a94203544a182159"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 29 12:33:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 29 12:33:23 2016 +0000"
      },
      "message": "Merge \"Do checks on the fault address when we think it\u0027s an NPE.\""
    },
    {
      "commit": "e8e1127da3f154fae8d2eb16a94203544a182159",
      "tree": "930aa5bd3f4e81dcf1b27043844da55a3dcb5cc4",
      "parents": [
        "739dc72773c5dee583a1d322f91b5abd61f9889d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 28 18:08:46 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 12:31:52 2016 +0100"
      },
      "message": "Do checks on the fault address when we think it\u0027s an NPE.\n\nbug:29321958\nChange-Id: I28f4da56eb3e0b48721d3ac41114858bc80daadb\n"
    },
    {
      "commit": "88f288e3564d79d87c0cd8bb831ec5a791ba4861",
      "tree": "dd051a7b2985d1af3fea91ad6000de4bdc701a19",
      "parents": [
        "e36389f20c83083c0aaba2dcac0888951e55cae1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:17:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:41:25 2016 +0000"
      },
      "message": "Revert \"Optimize IMT\"\n\nBug: 29188168 (for initial CL)\nBug: 29778499 (reason for revert)\n\nThis reverts commit badee9820fcf5dca5f8c46c3215ae1779ee7736e.\n\nChange-Id: I32b8463122c3521e233c34ca95c96a5078e88848\n"
    },
    {
      "commit": "e36389f20c83083c0aaba2dcac0888951e55cae1",
      "tree": "3fe74b637f8dc90e3cbc8ad3949f3f340236537f",
      "parents": [
        "abf64415cf99a9a7ee048ae26c76f7bbe972a6b9",
        "d4ceecc85a5aab2ec23ea1bd010692ba8c8aaa0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:40:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 29 08:40:14 2016 +0000"
      },
      "message": "Merge \"Revert \"Refactor GetIMTIndex\"\""
    },
    {
      "commit": "d4ceecc85a5aab2ec23ea1bd010692ba8c8aaa0c",
      "tree": "982948a67a88a1f9a734c935f919f8d307969f48",
      "parents": [
        "50706437d8216e41f0fea1e413cda7891324d397"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:39:47 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:39:47 2016 +0000"
      },
      "message": "Revert \"Refactor GetIMTIndex\"\n\nI need to revert this to get https://android-review.googlesource.com/#/c/244190/ to cleanly revert. Matthew, do you mind rewriting it?\n\nThis reverts commit 50706437d8216e41f0fea1e413cda7891324d397.\n\nChange-Id: I5c1435f5dffb46dbb5b613b22adb88c7770304f2\n"
    },
    {
      "commit": "87f3fcbd0db352157fc59148e94647ef21b73bce",
      "tree": "5bdeabb246f5de86704333b3fcbccc6e9146d246",
      "parents": [
        "b94b5706f0b8e2e1c7e1db22274f9f4bae0c4b5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 28 15:52:11 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 21 15:17:38 2016 +0100"
      },
      "message": "Replace String.charAt() with HIR.\n\nReplace String.charAt() with HArrayLength, HBoundsCheck and\nHArrayGet. This allows GVN on the HArrayLength and BCE on\nthe HBoundsCheck as well as using the infrastructure for\nHArrayGet, i.e. better handling of constant indexes than\nthe old intrinsic and using the HArm64IntermediateAddress.\n\nBug: 28330359\nChange-Id: I32bf1da7eeafe82537a60416abf6ac412baa80dc\n"
    },
    {
      "commit": "50706437d8216e41f0fea1e413cda7891324d397",
      "tree": "23c7c5d1198b8cdde6261198626cfe443eab59ba",
      "parents": [
        "badee9820fcf5dca5f8c46c3215ae1779ee7736e"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jun 14 11:31:04 2016 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Wed Jun 15 09:08:35 2016 -0700"
      },
      "message": "Refactor GetIMTIndex\n\nThis allows us to more easily maintain and experiment with\ninterface method table indexing and hashing.\n\nChange-Id: I719920fae7490dcedcda7c1c36db225c2b8b16df\n"
    },
    {
      "commit": "badee9820fcf5dca5f8c46c3215ae1779ee7736e",
      "tree": "982948a67a88a1f9a734c935f919f8d307969f48",
      "parents": [
        "614968198625a6693666bdc1e5609e2f663f5638"
      ],
      "author": {
        "name": "Nelli Kim",
        "email": "nelli.kim@samsung.com",
        "time": "Fri May 13 13:08:53 2016 +0300"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jun 14 10:05:47 2016 -0700"
      },
      "message": "Optimize IMT\n\n* Remove IMT for classes which do not implement interfaces\n* Remove IMT for array classes\n* Share same IMT\n\nSaved memory (measured on hammerhead):\nboot.art:\nTotal number of classes: 3854\nNumber of affected classes: 1637\nSaved memory: 409kB\n\nChrome (excluding classes in boot.art):\nTotal number of classes: 2409\nNumber of affected classes: 1259\nSaved memory: 314kB\n\nGoogle Maps (excluding classes in boot.art):\nTotal number of classes: 6988\nNumber of affected classes: 2574\nSaved memory: 643kB\n\nPerformance regression on benchmarks/InvokeInterface.java benchmark\n(measured timeCall10Interface)\n1st launch: 9.6%\n2nd launch: 6.8%\n\nChange-Id: If07e45390014a6ee8f3c1c4ca095b43046f0871f\n"
    },
    {
      "commit": "a3549d2b93f6ab4fe42f7c137cecae51b3b5fa14",
      "tree": "71de49768cb78980015dac65a4cbc49d23e82e12",
      "parents": [
        "1b66fdf3f33c72dfdda4d31f6f17b6a0d8607402"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jun 02 17:01:02 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jun 02 22:58:13 2016 -0700"
      },
      "message": "Fix an issue of partial fragment deoptimization\n\nIf the interpreter bridge returns to the instrumentation exit stub,\nwe need to let the stub makes the decision whether the calling code\nis deoptimizeable or not since the stub knows the real return pc.\n\nBug: 28769520\nChange-Id: I262d1222e50a1ccbcb3675d05dcab414dc242a28\n"
    },
    {
      "commit": "f711f2cf3c28dfe865e36f17419a16f06a0ebb5a",
      "tree": "3657d68b2a2fb67f4919cb97ca279cf9310224e9",
      "parents": [
        "bbfa42aa4c4b5cbc2ed2d8bdea6ff76da615a8aa"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon May 23 12:29:39 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 26 13:24:54 2016 -0700"
      },
      "message": "Partial fragment deoptimization\n\nWe used to do either single frame deoptimization, or full fragment\ndeoptimization which deoptimizes all the frames in a fragment.\nThis change allows some methods to be not deoptimizeable, likely due\nto some kind of optimization. So we need another deoptimization mode\nthat unwinds partial fragment. Deoptimizations are now generalized into\neither full or partial fragment. A full fragment deoptimization will\ndeopt all frames in the fragment, and then returns from the invoke stub\nto enter interpreter. A partial fragment deoptimization will deopt a\nsingle frame, or all frames up to the method that\u0027s not deoptimizeable,\nand then jumps to the interpreter bridge.\n\nCurrently code not deoptimizeable is the code in boot image since the\ncode may not be compiled with debuggable flag.\n\nBug: 28769520\nChange-Id: I875c694791cc8ebd5121abcd92ce7b0db95aca38\n"
    },
    {
      "commit": "fba39972d99701c80bf3beb7451aca508d67593c",
      "tree": "0d80ecb6997290140503926b08a72e7418915526",
      "parents": [
        "718d4e269810c17d03df909c84b2f7bbd4f61fb9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 11 11:26:48 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri May 13 10:38:56 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings.\n\n* Add parentheses to fix warnings.\n* Use NOLINT to suppress wrong clang-tidy warnings.\n\nBug: 28705665\nChange-Id: Icc8bc9b59583dee0ea17ab83e0ff0383b8599c3e\n"
    },
    {
      "commit": "c7ed09bd5d6f2c7af3bcba1c39b3f9185af68796",
      "tree": "bfad0c9f5236cc4d158bc0c64d5ef645ce09d283",
      "parents": [
        "0f35e0b26d8c7738ca7b284357afa9dafb659d47"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 25 20:08:55 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 29 16:06:14 2016 -0700"
      },
      "message": "ART: Log all monitor operations to systrace\n\nAdd a VLOG option (\"-verbose:systrace-locks\") to log all monitor\noperations to systrace. This requires non-fastpath thread\nentrypoints, and ATRACE tags for locking and unlocking.\n\nDo a bit of cleanup to the entrypoint initialization to share\ncommon setup.\n\nBug: 28423466\n\n(cherry picked from commit fc6898769ae1ef91ec3e41c0a273401213cb82cd)\n\nChange-Id: Ie67e4aa946ec15f8fcf8cb7134c5d3cff0119ab3\n"
    },
    {
      "commit": "e42888f9df4163303244070c65d5229d3e201742",
      "tree": "c3c3e380ed16676186040f1da6042fc2cd58e041",
      "parents": [
        "7f98c9a6babe3a21d84ce1f1e1273c99975a47f5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 14 10:49:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 27 12:45:30 2016 -0700"
      },
      "message": "Write conflict tables in image\n\nAdd image sections for runtime methods and conflict tables. This\nmakes it that we do not need to fake up a length prefixed array\nfor runtime methods.\n\nReduces .art private dirty and PSS.\n\nSystem wide .art PSS goes from 32.5MB to 30.5MB after system boot.\n\nBusiness card .art private dirty goes from 588K to 504K.\n\nIncreases image size by ~100K.\n\nBug: 27906566\n\n(cherry picked from commit cda9386add68d94697449c6cb08b356747e55c21)\n\nChange-Id: I38cbe3150c3eeb385b8cad7cf93614e3980f4162\n"
    },
    {
      "commit": "7f98c9a6babe3a21d84ce1f1e1273c99975a47f5",
      "tree": "e4e19523d64b36ace1314d7d2493b64b31eb7442",
      "parents": [
        "3ce07dd1a1d000a5439e32d64fcee19268846c08"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 14 10:49:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 27 12:44:47 2016 -0700"
      },
      "message": "Add support for eagerly calculating conflict tables\n\nWill be used to put them in the image by having the compiler eagerly\ncalculate them.\n\nEnabled for debug builds (non compiler). Support for having conflict\ntables written in the image will come in the next CL.\n\nBug: 27906566\n\n(cherry picked from commit 49b5cede15d69930a8c156a3aea240164ca7af80)\n\nChange-Id: Ia05cb31f85eacfeabe64a8caf9a0b3029114a749\n"
    },
    {
      "commit": "393fdb8b4822d80bbbd6347b088e28c03a72289e",
      "tree": "134955e86b08514fb88ecd0e5a037adfbf738fd6",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 25 14:58:06 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 25 16:56:56 2016 +0000"
      },
      "message": "Make sure the referring class is in the dex cache.\n\nThe method CanAccessResolvedMethod expects the referring class\nin the dex file is already in the dex cache, which is true during AOT,\nbut not necessarilly during JIT.\n\nbug:28295348\nChange-Id: I58739903f0dff3867b920a7444f53b99ecf86e85\n"
    },
    {
      "commit": "2f92ec8a52faa4bc566af8fa34212f3e749e82c8",
      "tree": "78b9ee38ae016f1198bc21ae7d913bc961f7624a",
      "parents": [
        "75ee5c28ab583c532066b64d6337a5f78d6aa2ad",
        "61b28a17d9b6e8e998103646e98e4a9772e11927"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 04 13:35:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 04 13:35:53 2016 +0000"
      },
      "message": "Merge \"Use bit-level packing for InlineInfo in stackmaps as well.\""
    },
    {
      "commit": "cbfa10557ab6e2669747a1e21a87adf212ec44c2",
      "tree": "5c041e9dd51300a5a84159adf390d68b1ab075bc",
      "parents": [
        "01afcbba19e40db984d41974086d63bbdd9cb955",
        "9fc547ac3936fe88e9592f4a47afd7b134cb607c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 01 17:30:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 01 17:30:41 2016 +0000"
      },
      "message": "Merge \"Make InvokeInterfaceTrampoline check methods\""
    },
    {
      "commit": "9fc547ac3936fe88e9592f4a47afd7b134cb607c",
      "tree": "1f604cb34a00418694515e7790657be8306650e1",
      "parents": [
        "87ad82eb1e085ccc6ed3ec54945937582334dbbc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 31 14:34:33 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 01 09:46:37 2016 -0700"
      },
      "message": "Make InvokeInterfaceTrampoline check methods\n\nInvokeInterfaceTrampoline was causing problems by looking into the\nImtConflictTable of non-imt-conflict-methods. This makes it check for\nthat before doing so.\n\nBug: 27931085\n\nChange-Id: I993178a371f8f46535a752e5c4d46d74777cefaf\n"
    },
    {
      "commit": "61b28a17d9b6e8e998103646e98e4a9772e11927",
      "tree": "438c4a73f72423ddc71e6dca9f082d9e1d533996",
      "parents": [
        "cf0f8560f41467331427418584687830932e66ed"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 25 21:55:03 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 01 17:01:55 2016 +0100"
      },
      "message": "Use bit-level packing for InlineInfo in stackmaps as well.\n\nUse the same approach as we do for stackmaps to reduce the size.\n\nIt saves 4.0 MB from non-debuggable boot.oat (AOSP).\nIt does not affect debuggable boot.oat.\n\nIt saves 3.6 MB (of 96.6 MB) from /system/framework/arm/ (GOOG).\nIt saves 0.6 MB (of 26.7 MB) from /system/framework/oat/arm/ (GOOG).\n\nField loads from inline-info get around 5% slower.\n(based on the time it takes to load all inline-infos from boot.oat)\n\nChange-Id: I67b0fa5eef74c1fdb013680d0231fd44ea696176\n"
    },
    {
      "commit": "09ed09866da6d8c7448ef297c148bfa577a247c2",
      "tree": "dad6a5dae6ca6131f1eba201eaa371edc6d9929d",
      "parents": [
        "e28ad4b91591c226ed404a2b01104bb99bfeb28f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 12 21:58:43 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 31 22:12:07 2016 +0100"
      },
      "message": "Pack stack map entries on bit level to save space.\n\nUse only the minimum number of bits required to store stack map data.\nFor example, if native_pc needs 5 bits and dex_pc needs 3 bits, they\nwill share the first byte of the stack map entry.\n\nThe header is changed to store bit offsets of the fields rather than\nbyte sizes. Offsets also make it easier to access later fields without\ncalculating sum of all previous sizes.\n\nAll of the header fields are byte sized or encoded as ULEB128 instead\nof the previous fixed size encoding. This shrinks it by about half.\n\nIt saves 3.6 MB from non-debuggable boot.oat (AOSP).\nIt saves 3.1 MB from debuggable boot.oat (AOSP).\n\nIt saves 2.8 MB (of 99.4 MB) from /system/framework/arm/ (GOOG).\nIt saves 1.0 MB (of 27.8 MB) from /system/framework/oat/arm/ (GOOG).\n\nField loads from stackmaps seem to get around 10% faster.\n(based on the time it takes to load all stackmap entries from boot.oat)\n\nBug: 27640410\nChange-Id: I8bf0996b4eb24300c1b0dfc6e9d99fe85d04a1b7\n"
    },
    {
      "commit": "796d63050a18f263b93ea34951a61deaecab3422",
      "tree": "813865c31b25ac06006e4ee3932b4e918c708c9b",
      "parents": [
        "eecf60d51b481647c8508f22b3d6ce437773ea0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Mar 13 22:22:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 15:17:58 2016 +0000"
      },
      "message": "Add an ImtConflictTable to better resolve IMT conflicts.\n\n- Attach a ImtConflictTable to conflict runtime ArtMethod.\n- Initially 0, a new one will be created at the first hit of\n  the conflict method.\n- If the assembly code does not find a target method in the table,\n  we will create a new one again, copying the data from the previous\n  table and adding the new mapping.\n\nImplemented for arm/arm64/x86/x64.\n\nbug:27556801\nbug:24769046\n\nChange-Id: Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7\n"
    },
    {
      "commit": "e9dd04f633fcffc485f8d74861f39f66fc8bc522",
      "tree": "894c9061f726899e0988c5c0c987eb18bab2d527",
      "parents": [
        "e848c29bb35d91f23bb6f52712aa7f2dff342ea0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 16 16:09:45 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 17 16:29:55 2016 +0000"
      },
      "message": "Revert \"Revert \"Fix issue with proxy invocation on default methods\"\"\n\nThis reverts commit daf58c80d42f024aae0cb94ebd2c0bd61ebbf240.\n\nBug: 27621360\nChange-Id: I56fccf19ae80451be4c316ba14911c667cbe9e47\n"
    },
    {
      "commit": "42ad288254e660ad091d03fad8c8fbad1d34ec89",
      "tree": "6b5707f3d407f240b8e9df61c28b03f64d320c5b",
      "parents": [
        "c3bcf40e905c53ec857ec40a9ae45f4c86738929"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 29 18:26:54 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 29 18:26:54 2016 +0000"
      },
      "message": "Fix the signature of the IndexOf entry point.\n\nThe IndexOf entry point was declared as taking four\narguments (void*, uint32_t, uint32_t, uint32_t) whereas all\nactual implementations use three arguments (void*, uint32_t,\nuint32_t).  As that fourth argument is not documented, drop\nit from the intrinsic declaration to have it match the\nimplementations.\n\nChange-Id: I65d747033192025ccd2b9a5e8f8ed05b77a21941\n"
    },
    {
      "commit": "a61347b5f2ffb228e6a6c455b7d7bcde02d44960",
      "tree": "c68122388add7b9ad19f7176dc92a53a5a1a9488",
      "parents": [
        "51022790628270153c2d46bfebbc4b6aaafa2757"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 05 13:47:06 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 05 14:14:34 2016 -0800"
      },
      "message": "Address missed amend\n\nForgot to amend after addressing code review comments.\n\nBug: 26990650\n\n(cherry picked from commit 3cfc2e4fb6c4735a145aa184db14d0bf33653e33)\n\nChange-Id: Ic8483a50e0670cac1291385a82b7c5e4a313cd18\n"
    },
    {
      "commit": "bf36918448eb2c0ce15d429e3fc3ef1e525a9ee6",
      "tree": "400dd7e27183a28f7a4b2b65e83783542bcec3e5",
      "parents": [
        "45b93ca31448888d13b3859a8c3d0c90d4b00e54"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 04 18:13:32 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 05 11:28:40 2016 -0800"
      },
      "message": "Fix moving GC bugs in quick_field_entrypoints.cc\n\nThere was some missing handles. Fixed style.\n\nBug: 26990650\n\n(cherry picked from commit 1fd00287bedce99cd602aec00d421bddb7a9a107)\n\nChange-Id: If7cb0de61e6b19004838e98345fdbc60ccdd5767\n"
    },
    {
      "commit": "fedd91d50930e160c021d65b3740264f6ffec260",
      "tree": "5f356423e51f3bd71020ba0a5f024c54adc959e7",
      "parents": [
        "97f4bc04b61d5cf78b0820dbf18e999b20d7a108"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 07 14:49:16 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 28 15:46:55 2016 -0800"
      },
      "message": "Optimizing compiler support for directly calling interface methods\n\nThis teaches the optimizing compiler how to perform invoke-super on\ninterfaces. This should make the invokes generally faster.\n\nBug: 24618811\n\nChange-Id: I7f9b0fb1209775c1c8837ab5d21f8acba3cc72a5\n"
    },
    {
      "commit": "f39745e663f8f2634fc8858e427b77da98f8f2b4",
      "tree": "b8cd5abd22e0252511166930ac6326a2f38e6980",
      "parents": [
        "36867b43efadc637ab74b1bacb1caecea2c5413d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 26 12:16:55 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 26 12:16:55 2016 +0000"
      },
      "message": "ART: Remove some unnecessary mutator lock annotations.\n\nThe StackReference\u003c\u003e pointer held by a Handle\u003c\u003e can be used\nwithout holding the mutator lock. We already do that when\nwe copy Handle\u003c\u003es around. Only accessing the actual content\nof the pointed-to StackReference\u003c\u003e needs to be done while\nholding the mutator lock.\n\nChange-Id: I5f93bd7e277383192f1f16dff6883ecb26387414\n"
    },
    {
      "commit": "103992b9171fac9eceb2fe4015ab04f544b9c559",
      "tree": "0e21aeb48e11130f9bfe1c1c42202ba715e30cb6",
      "parents": [
        "376a6f3dbae7b71a6fc2c339ec416d3407277308"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 04 15:32:43 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 05 08:16:06 2016 -0800"
      },
      "message": "ART: Move ThrowStackOverflowError to common_throws\n\nThis should really be in common_throws considering all the callers.\n\nChange-Id: I410c07cbf5659f216d44597530cb85f99740f320\n"
    },
    {
      "commit": "fae1db92d8433d0f75258c190bcf2c940731f036",
      "tree": "f34df405cf1a6762ea2326edfc8d6d0128439969",
      "parents": [
        "5640499750bbc923e42d8cfd0ea9fdcd1c3d1459",
        "a00f012660e9a4baa34c0ab96042f7146e9a6017"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 17 18:55:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 17 18:55:58 2015 +0000"
      },
      "message": "Merge \"ART: Refactor CommonRuntimeTest::SetUp\""
    },
    {
      "commit": "a00f012660e9a4baa34c0ab96042f7146e9a6017",
      "tree": "7091c01a3119a2353884c592956279252386c890",
      "parents": [
        "cbf8af898e758cef27687c20c8cf9ac75280026d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 16 16:54:35 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 17 10:41:13 2015 -0800"
      },
      "message": "ART: Refactor CommonRuntimeTest::SetUp\n\nFactor out finishing up the runtime. This code will execute the\ninterpreter to initialize important classes etc., which is not\nnecessary for testing RuntimeMethod sizes and trampoline entrypoints,\nin fact it may violate pointer-size invariants.\n\nAlso add InstructionSet parsing tests to the ParsedOptions test.\n\nChange-Id: I75cd00c6d358e1bc962c8f1845244f6400c1cd6c\n"
    },
    {
      "commit": "fb9f4ad455eced3a07bef1d4772ab1fe34ec133b",
      "tree": "e93979f3c2edc7ce3c2a70cedba2fb0b62223ab3",
      "parents": [
        "d16bb3f0dc17d77db7022150d0710fcbb8b6fd9d",
        "cc78f3f87b0b8c6b0fb759e698840898940d4865"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Dec 17 08:08:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 17 08:08:12 2015 +0000"
      },
      "message": "Merge \"Fix (non-intrinsic) UnsafeCASObject for the read barrier config.\""
    },
    {
      "commit": "cc78f3f87b0b8c6b0fb759e698840898940d4865",
      "tree": "a32c3976753da46d5368a1863c1b9072b75d5cfd",
      "parents": [
        "277da370dd517af0d6a27bef3b86d5f259feda62"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 11 15:51:04 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Dec 16 11:54:42 2015 -0800"
      },
      "message": "Fix (non-intrinsic) UnsafeCASObject for the read barrier config.\n\nMake sure the field contains a to-space reference before attempting the\nCAS with a special read barrier to avoid an incorrect CAS failure.\n\nThis is only about the non-intrinsic UnsafeCASObject.\n\nThis seems to fix some jsr166 test failures.\n\nAlso, remove the unused template parameter kMaybeDuringStartup.\n\nBug: 25883050\nBug: 12687968\n\nChange-Id: Ia6f0d882fa3d90c42f14968672d547babcdf6309\n"
    },
    {
      "commit": "7c1559a06041c9c299d5ab514d54b2102f204a84",
      "tree": "c50b54bf82f457f44dbf0741947d836749d4a96a",
      "parents": [
        "7cd230c8f74a227ea04f1dd93c8d855aa81fc1fe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 15 10:55:36 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 15 11:45:56 2015 +0000"
      },
      "message": "x86 Baker\u0027s read barrier fast path implementation.\n\nIntroduce an x86 fast path implementation in Optimizing for\nBaker\u0027s read barriers (for both heap reference loads and GC\nroot loads).  The marking phase of the read barrier is\nperformed by a slow path, invoking a new runtime entry point\n(artReadBarrierMark).\n\nOther read barrier algorithms continue to use the original\nslow path based implementation, which has been renamed as\nGenerateReadBarrierSlow/GenerateReadBarrierForRootSlow.\n\nBug: 12687968\nChange-Id: Ie610c4befc19ff22378a8cba38b422dcacb54320\n"
    },
    {
      "commit": "376cbcc5163b3bb80811b9af6b67b6f8719db9f2",
      "tree": "e7d9780e67772221de3063b48dc0972eed31aa7d",
      "parents": [
        "b4cc884dfe5bb9c1a36bdfbf6a0dfa183d8d321c",
        "a4f1220c1518074db18ca1044e9201492975750b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 11 09:31:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 09:31:08 2015 +0000"
      },
      "message": "Merge \"Optimizing: Add direct calls to math intrinsics\""
    },
    {
      "commit": "42ef8ab151a3d0cbb42cb43f6841c3708d65fca3",
      "tree": "ba8eb3fdecd226a8c516a86ac418f73f6c0ff254",
      "parents": [
        "170e01a6b59b3242a5afc76c3a03c00ce288150f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 03 17:27:32 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 10 13:52:33 2015 -0800"
      },
      "message": "ART: Stash a resolved method late in the verifier\n\nInvoke-interface should only be called on an interface method.\nWe cannot move the check earlier, as there are other checks\nthat must be done that can fail a class hard. So postpone\na push to the dex cache.\n\nClean up the test a bit.\n\nAlso templatize ResolveMethod with a version always checking\nthe invoke type, and on a cache miss check whether type target\ntype is an interface when an interface invoke type was given.\n\nBug: 21869691\nChange-Id: I94cbb23339cbbb3cb6be9995775e4dcefacce7fd\n"
    },
    {
      "commit": "c96205e03bd4f991ad1540df38f9f692ef211b22",
      "tree": "4ae775d15f51efb704ca5b00a2ee4b6fb6615812",
      "parents": [
        "34760f9a97e6a1733edfca1b13199f749106a30f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 10 13:25:27 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 10 13:27:10 2015 -0800"
      },
      "message": "Revert \"ART: Check invoke-interface earlier in verifier\"\n\nThis reverts commit dae24142127c64551142a50423085aabdb0a6060.\n\nIt is important to check the name of the method being called.\n\nBug: 21869691\n"
    },
    {
      "commit": "a4f1220c1518074db18ca1044e9201492975750b",
      "tree": "796f0dcd733ad5ffd7d8310af871f3e2c22ee0be",
      "parents": [
        "763fd2d3d131898cad6295a19ae9a30e22ce5f2a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Aug 06 15:23:34 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Dec 10 13:23:49 2015 -0500"
      },
      "message": "Optimizing: Add direct calls to math intrinsics\n\nSupport the double forms of:\n  cos, sin, acos, asin, atan, atan2, cbrt, cosh, exp, expm1,\n  hypot, log, log10, nextAfter, sinh, tan, tanh\n\nAdd these entries to the vector addressed off the thread pointer. Call\nthe libc routines directly, which means that we have to implement the\nnative ABI, not the ART one. For x86_64, that includes saving XMM12-15\nas the native ABI considers them caller-save, while the ART ABI\nconsiders them callee-save.  We save them by marking them as used by the\ncall to the math function.  For x86, this is not an issue, as all the XMM\nregisters are caller-save.\n\nOther architectures will call Java as before until they are ready to\nimplement the new intrinsics.\n\nBump the OAT version since we are incompatible with old boot.oat files.\n\nChange-Id: Ic6332c3555c09393a17d1ad4daf62932488722fb\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "eb5ddd7b02ce2d25d4f28f85a13aac628526e1c1",
      "tree": "8f655b382e73222e70e30daaeedc3999014aa7ae",
      "parents": [
        "2433d4e17c3006b8262a0d9421e201fc84777208",
        "dae24142127c64551142a50423085aabdb0a6060"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 08 22:33:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 08 22:33:23 2015 +0000"
      },
      "message": "Merge \"ART: Check invoke-interface earlier in verifier\""
    },
    {
      "commit": "dae24142127c64551142a50423085aabdb0a6060",
      "tree": "35c06bc37e2dd2caad4fef1fba4de16a12aad6f9",
      "parents": [
        "ef45113d01c16102538a8848d6979e772dad6225"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 03 17:27:32 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 08 08:50:12 2015 -0800"
      },
      "message": "ART: Check invoke-interface earlier in verifier\n\nInvoke-interface should only be called on an interface method.\nMove the check earlier, as otherwise we\u0027ll try to resolve and\npotentially inject a method into the dex cache.\n\nAlso templatize ResolveMethod with a version always checking\nthe invoke type, and on a cache miss check whether type target\ntype is an interface when an interface invoke type was given.\n\nBug: 21869691\nChange-Id: Ica27158f675b5aa223d9229248189612f4706832\n"
    },
    {
      "commit": "73be1e8f8609708f6624bb297c9628de44fd8b6f",
      "tree": "47a22745797a345dea8dd846aad00334da0d5bf1",
      "parents": [
        "47229aa5848df7d45578dbdd9285f57dfa9399a8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 15:22:56 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 04 12:08:02 2015 +0000"
      },
      "message": "Inline monomorphic calls.\n\nChange-Id: If38171c2dc7d4a4378df5d050afc4fff4499c98f\n"
    },
    {
      "commit": "e523423a053af5cb55837f07ceae9ff2fd581712",
      "tree": "6c2d9c570bf0d9a0e2cd056e052c0be618b03fc5",
      "parents": [
        "08a84acc7adb1bb076595eb961bd4667896e5075"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 09:06:11 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 13:01:25 2015 +0000"
      },
      "message": "Revert \"Revert \"Don\u0027t use the compiler driver for method resolution.\"\"\n\nThis reverts commit c88ef3a10c474045a3476a02ae75d07ddd3230b7.\n\nChange-Id: I0ed88a48b313a8d28bc39fae40631123aadb13ef\n"
    },
    {
      "commit": "3a0909248e04b22c3981cbf617bc2502ed5b6380",
      "tree": "b0b7013ea78b10f23fae75ef145e53a696ff797c",
      "parents": [
        "457e874459ae638145cab6d572e34d48480e39d2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "457e874459ae638145cab6d572e34d48480e39d2",
      "tree": "b192c4698c4889ae90db6abe2652199802213fe6",
      "parents": [
        "3944f7175dcf60316ba58a42698ccf23c65ac57c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 22 17:37:50 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 20 16:33:06 2015 -0800"
      },
      "message": "lambda: Add support for invoke-interface for boxed innate lambdas\n\nLambda closures created with the \u0027create-lambda\u0027 instruction\n(termed \"innate lambdas\") can be turned into an object with \u0027box-lambda\u0027.\n\nThis CL enables support for those kinds of lambdas to work with\n\u0027invoke-interface\u0027 by generating a proxy class for the lambda.\n\nNote: MIPS32/64 support not included.\n\nBug: 24618608\nBug: 25107649\nChange-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb\n"
    },
    {
      "commit": "0d5a281c671444bfa75d63caf1427a8c0e6e1177",
      "tree": "fd9bbe0f1c581bcc7c05bbfb2643ffe0b1fb014e",
      "parents": [
        "dd4cbcc924c8ba2a578914a4a366996693bdcd74"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 13 10:07:31 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Nov 15 12:16:41 2015 +0000"
      },
      "message": "x86/x86-64 read barrier support for concurrent GC in Optimizing.\n\nThis first implementation uses slow paths to instrument heap\nreference loads and GC root loads for the concurrent copying\ncollector, respectively calling the artReadBarrierSlow and\nartReadBarrierForRootSlow (new) runtime entry points.\n\nNotes:\n- This implementation does not instrument HInvokeVirtual\n  nor HInvokeInterface instructions (for class reference\n  loads), as the corresponding read barriers are not stricly\n  required with the current concurrent copying collector.\n- Intrinsics which may eventually call (on slow path) are\n  disabled when read barriers are enabled, as the current\n  slow path infrastructure does not support this case.\n- When read barriers are enabled, the code generated for a\n  HArraySet instruction always go into the array set slow\n  path for object arrays (delegating the operation to the\n  runtime), as we are lacking a mechanism to keep a\n  temporary register live accross a runtime call (needed for\n  the instrumentation of type checking code, which requires\n  two successive read barriers).\n\nBug: 12687968\nChange-Id: I14cd6107233c326389120336f93955b28ffbb329\n"
    },
    {
      "commit": "9139e008abe30b7beaf4afd6533228a1dd9b202c",
      "tree": "506be89287507bd777bd132627ad963729434969",
      "parents": [
        "d7c76bd7e867b151ac81ef41810614c7b4cc898e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 09 15:59:48 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 10 17:20:41 2015 -0800"
      },
      "message": "Correct exception behavior for default methods\n\nDefault methods are defined to throw an IncompatibleClassChangeError\n(ICCE) when they are called and there is no \"best\" implementation.\nPreviously we would simply throw an ICCE during class loading as soon\nas we noticed that this would happen if called. This makes us wait\nuntil we actually attempt to execute the method. Furthermore, this\nallows us to use other, non-conflicting, methods on the object as\nnormal.\n\nFurthermore, this makes us correctly throw AbstractMethodErrors in\ncases where all default implementations of a method are overridden by\nabstract declarations.\n\nAdds 3 tests for this new behavior.\n\nBug: 24618811\n\nChange-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e\n"
    },
    {
      "commit": "524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02",
      "tree": "ad07cc96f633bdae839ff2f1553d84b9c864a930",
      "parents": [
        "b697c447eb61c2e14315166ec3b0d16375ae403c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 16 17:13:34 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 11:52:11 2015 +0100"
      },
      "message": "Remove ArtCode.\n\n- Instead use OatQuickMethodHeader.\n- Various cleanups now that we don\u0027t have all those\n  ArtMethod -\u003e ArtCode -\u003e OatQuickMethodHeader indirections.\n\nAs a consequence of this cleanup, exception handling got a bit\nfaster.\n\nParserCombinators benchmark (exception intensive) on x64: (lower is better)\nBefore:\nParserCombinators(RunTime): 1062500.0 us.\nAfter:\nParserCombinators(RunTime): 833000.0 us.\n\nChange-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3\n"
    }
  ],
  "next": "4b8f1ecd3aa5a29ec1463ff88fee9db365f257dc"
}
