)]}'
{
  "log": [
    {
      "commit": "bcf716f3e0c72aa8bb75b15e5b273a813658fdb5",
      "tree": "92d55371dc3859f4be6c05eb3fcd2b4670057b47",
      "parents": [
        "09c8235da86ce1d01b4dfb38a5af1481d13efe80"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 23 10:43:09 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 24 11:07:53 2017 +0000"
      },
      "message": "Revert^2 \"Enable String compression.\"\n\nTest: m test-art-host (interpreter, JIT, AOT)\nTest: m test-art-target on Nexus 6P (interpreter, JIT, AOT)\nTest: Nexus 6P boots\nTest: m ahat-test\nBug: 31040547\n\nThis reverts commit afcb365b2d3ae152989826c2afb0d98a9cf3f6be.\n\nChange-Id: Id7e27d717c8e36d3c7abdde59ca2c8fd4fc221c9\n"
    },
    {
      "commit": "afcb365b2d3ae152989826c2afb0d98a9cf3f6be",
      "tree": "abba45a6314d4b83a1e1d004019b5c9bc360b34d",
      "parents": [
        "24bbf98cec9f39a2592892adb245ce15d58cab19"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 16 21:46:27 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 16 21:46:27 2017 +0000"
      },
      "message": "Revert \"Enable String compression.\"\n\nThe internal API String.setCharAt() is broken\nwith string compression.\n\nBug: 31040547\n\nThis reverts commit 24bbf98cec9f39a2592892adb245ce15d58cab19.\n\nChange-Id: If2c2fa0eb42a8613994dfa5299febf7a5de2bf31\n"
    },
    {
      "commit": "24bbf98cec9f39a2592892adb245ce15d58cab19",
      "tree": "176def9d02c8bb1d995b69e9b23f845aeeb96c15",
      "parents": [
        "ab58a629d6cfe75f0ed34326c2ca6364b2203885"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 02 17:48:20 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 13 13:31:04 2017 +0000"
      },
      "message": "Enable String compression.\n\nTest: m test-art-host (interpreter, JIT, AOT)\nTest: m test-art-target on Nexus 6P (interpreter, JIT, AOT)\nTest: Nexus 6P boots\nTest: m ahat-test\nBug: 31040547\nChange-Id: I2c2f74ca147b3ea98ef06f9c64553737d17d42fd\n"
    },
    {
      "commit": "2bb70d31ee7749b18b5e0e5ce50a12d30bc1f27c",
      "tree": "789efed4ffafdd03ac9ffd1c06d7f74ea962d2d2",
      "parents": [
        "7b220d60e3cb58c384a0d245106406080c6f3e37"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 06 10:34:14 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 06 10:49:57 2017 -0800"
      },
      "message": "Revert \"Revert \"build: Generate asm_support_gen.h from the build, validate up-to-date\"\"\n\nThis reverts commit 592505c340e82091a6e13e2dff3d8589255df0bb.\n\nFix HOST_PREFER_32_BIT\u003dtrue causing buildbot\nto fail with the new asm_support genrule.\n\nTest: SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue HOST_PREFER_32_BIT\u003dtrue\\\n      make -j32  build-art-host-tests\nOriginal-Change-Id: I1f0f94914d328c396906583d0732e281c076e69f\nChange-Id: Ie08a11fdb9486b697d6cef4cec41b23ff120b205\n"
    },
    {
      "commit": "592505c340e82091a6e13e2dff3d8589255df0bb",
      "tree": "70075f3e50afc6f1709d0ff296b7e2e8dd223f3b",
      "parents": [
        "2449a154c457eaa2c6a30e11184bb7381903cfd5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 04 03:26:14 2017 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 04 03:26:14 2017 +0000"
      },
      "message": "Revert \"build: Generate asm_support_gen.h from the build, validate up-to-date\"\n\nBreaks the build bot:\n\nerror: art/tools/cpp-define-generator/Android.bp:41:1: dependency \"cpp-define-generator-data\" of \"cpp-define-generator-asm-support\" missing variant \"arch:linux_x86_64\"\n\nThis reverts commit 2449a154c457eaa2c6a30e11184bb7381903cfd5.\n\nChange-Id: I05ae3fa3c56a10238d48c52faa10b8c9c82d9d24\n"
    },
    {
      "commit": "2449a154c457eaa2c6a30e11184bb7381903cfd5",
      "tree": "e6f66104451b46f4fe0dce618a11b861a382f08a",
      "parents": [
        "27374ae7b59094e115ff23139c54ac97088eb01f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 02 14:33:39 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 02 16:18:27 2017 -0800"
      },
      "message": "build: Generate asm_support_gen.h from the build, validate up-to-date\n\nWhen building libart/libartd, also generate asm_support_gen.h\nautomatically. In addition, verify that our checked-in version\n(runtime/generated/asm_support_gen.h) is up-to-date with what the build\ngenerates.\n\nFurthermore, add a presubmit hook that runs with \u0027repo upload\u0027\nthat validates that the up-to-date version of asm_support_gen.h\nis being uploaded to gerrit.\n\nThis makes it significantly more difficult to accidentally\nmerge a CL that doesn\u0027t have the auto-generated headers updated\nand break the build as a result.\n\nBug: 34387670\nTest: make libart libartd\nTest: cd art \u0026\u0026 tools/repohooks/pre-upload.py\nChange-Id: I1f0f94914d328c396906583d0732e281c076e69f\n"
    },
    {
      "commit": "b048cb74b742b03eb6dd5f1d6dd49e559f730b36",
      "tree": "b1f663cbb343488a548cce4db352dbc4af720a89",
      "parents": [
        "f34077c96af3389e8eae65252d4c5d51cf630039"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 23 22:50:24 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 09:56:36 2017 +0000"
      },
      "message": "Add per array size allocation entrypoints.\n\n- Update architectures that have fast paths for\n  array allocation to use it.\n- Will add more fast paths in follow-up CLs.\n\nTest: test-art-target test-art-host.\nChange-Id: I138cccd16464a85de22a8ed31c915f876e78fb04\n"
    },
    {
      "commit": "8d91ac31ccb92557e434d89ffade3372466e1af5",
      "tree": "37fd364ba6c9a6cf5e6a60a00c2542c5ffb12528",
      "parents": [
        "2f670ccba022fe557c637571ac781519f0e84463"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 18:07:15 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 11:56:43 2017 +0000"
      },
      "message": "Remove unused array entrypoints.\n\nTest: test-art-host test-art-target\nChange-Id: I910d1c912c7c9056ecea0e1e7da7afb2a7220dfa\n"
    },
    {
      "commit": "39cee66a8ddf0254626c9591662cf87e4a1cedc4",
      "tree": "be25df71e51ce03a8847c23934322b8f282a291b",
      "parents": [
        "a3974581751cd73a896f7c4fcab71beb17c4f9dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 13 16:04:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 11:12:33 2017 +0000"
      },
      "message": "Entrypoints cleanup.\n\nRemove unused ones to facilitate the transition to compressed\ndex caches.\n\ntest: test-art-host, test-art-target\nChange-Id: I1d1cb0daffa86dd9dda2eaa3c1ea3650a5c8d9d0\n"
    },
    {
      "commit": "e71b35446985835363a4508646cf7b1121bd95a3",
      "tree": "bd40763b04ba2028f3383736b2a14808e407120c",
      "parents": [
        "8bd59a0fd46db83616785168231e09fb95ed2ead"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 16 14:58:23 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 17 11:55:07 2017 +0000"
      },
      "message": "Move some fields in art::Thread to reduce maintenance burden.\n\nMove fields `thread_local_start`, `thread_local_pos`,\n`thread_local_end` and `thread_local_objects` before fields\n`jni_entrypoints` and `quick_entrypoints` within\nart::Thread, to avoid repetitive art::Thread field moves in\nfuture CLs caused by the addition or deletion of entry\npoints.\n\nTest: m test-art-host\ntest: m test-art-target (on ARM)\nChange-Id: Ib67842e44a7f21a871ca4d1bb95dc6f7cfedc829\n"
    },
    {
      "commit": "ac141397dc29189ad2b2df41f8d4312246beec60",
      "tree": "a2f481463a14695bf9327fd2f549878ecf30c77b",
      "parents": [
        "5c9f90c5ecf2ff6f93ada0f7b18b46d866c59ea1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 13 11:53:47 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Jan 15 15:18:07 2017 +0000"
      },
      "message": "Revert \"Revert \"ART: Compiler support for invoke-polymorphic.\"\"\n\nThis reverts commit 0fb5af1c8287b1ec85c55c306a1c43820c38a337.\n\nThis takes us back to the original change and attempts to fix the\nissues encountered:\n\n- Adds transition record push/pop around artInvokePolymorphic.\n- Changes X86/X64 relocations for MacSDK.\n- Implements MIPS entrypoint for art_quick_invoke_polymorphic.\n- Corrects size of returned reference in art_quick_invoke_polymorphic\n  on ARM.\n\nBug: 30550796,33191393\nTest: art/test/run-test 953\nTest: m test-art-run-test\n\nChange-Id: Ib6b93e00b37b9d4ab743a3470ab3d77fe857cda8\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": "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": "d62515891b15e73bc8eebb55cc09cb4dec4fcf21",
      "tree": "20c485231c93fa83384312e428202d8140dfa09d",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 31 11:12:30 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 12:55:10 2016 -0700"
      },
      "message": "Add ClassExt mirror.\n\nWe add the ClassExt type to hold values in Class that are not always\nneeded without making the Class type larger. For the initial change we\nmove the verifyError field into this type. It is expected to grow as\ntime goes on.\n\nTest: mma test-art-host\n\nChange-Id: I1d97df2e1267203841ad47b2effcb66dd76ac12a\n"
    },
    {
      "commit": "2ecfd270adb29861b493de51cfb8670e276e0c5e",
      "tree": "6aa5d0062a59f43b2c188fe0b1f11d56aedc588a",
      "parents": [
        "19dfeb0e725bca7fd85b4a8a96ce9f3d30408aa3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 10:10:05 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 15:49:51 2016 -0700"
      },
      "message": "Add interface fast path to art_quick_check_cast for X86_64\n\nX86_64 CC ritzperf results from perf:\nart_quick_check_cast: 0.44% -\u003e 0.76%\nartIsAssignableFromCode: 1.78% -\u003e 0.11%\n\nAdded stub test.\n\nBug: 32577579\n\nTest: test-art-host\n\nChange-Id: I5ed5675c4674fac8eed8826eb50527f4876e5f07\n"
    },
    {
      "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": "4877b7986c9ba5c69be8f80692c260b4952f69be",
      "tree": "96b7076efea6d0d95322382a76b4759ff92ed8d5",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Thu Sep 08 19:49:13 2016 -0700"
      },
      "committer": {
        "name": "Jessica Handojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 17:10:48 2016 +0000"
      },
      "message": "String compression on intrinsics x86 and x86_64\n\nChanges on intrinsics and Code Generation (x86 and x86_64)\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for x86 before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.83% and boot.art decreased by 19.32%.\n\nMeanwhile for x86_64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.87% and boot.art decreased by 6.59%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-host\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nThe jni_internal_test changed to assert an empty string length\nto be equal -(1 \u003c\u003c 31) as it is compressed.\n\nBug: 31040547\nChange-Id: Ia447c9b147cabb6a69e6ded86be1fe0c46d9638d\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": "93bbee0c1c97bd9a5336ed0c9e41cd17613df585",
      "tree": "7f2fe8d9ec240b34e7ee153b95e69b821554ab7e",
      "parents": [
        "1c29876b303ab392e615b2294db009a971613bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 31 09:38:40 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 31 18:32:33 2016 -0700"
      },
      "message": "Faster allocation fast path\n\nAdded a new object size field to class, this field contains the\naligned object size if the object is not finalizable and is\ninitialized. If the object is finalizable or uninitialized the field\nis set to some large value that forces the ASM allocators to go slow\npath.\n\nOnly implemented for region/normal TLAB for now, will add the to\nRosAlloc stubs soon.\n\nCC N6P MemAllocTest: 1067 -\u003e 1039 (25 samples)\nCC N6P EAAC: 1281 -\u003e 1260 (25 samples)\n\nRAM overhead technically 0 since mirror::Class was not 8 byte aligned\npreviously. Since the allocators require 8 byte allignment, there\nwould have been 1 word of padding at the end of the class. If there\nwas actually 4 extra bytes per class, the system overhead would be\n36000 * 4 \u003d 120KB based on old N6P numbers for the number of loaded\nclasses after boot.\n\nBug: 9986565\n\nTest: test-art-host CC baker, N6P phone boot and EAAC runs.\n\nChange-Id: I119a87b8cc6c980bff980a0c62f42610dab5e531\n"
    },
    {
      "commit": "97a8a9a3385024d7a070a4b79d45afe9a64587cd",
      "tree": "fdff406b49ba7baa296955ad21bcba85446df212",
      "parents": [
        "da0f5e72cc5f2747a330b21afa34e7d798fc5c54"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 11:23:48 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Mon Aug 22 10:46:24 2016 -0700"
      },
      "message": "ART: Adding asm support for string dex cache\n\nAdded constants and offsets for the string dex cache fast paths that\nwill be introduced into entrypoints in subsequent commits.\n\nTest: test-art-host\n\nChange-Id: I19f97526e06cbedc782d5ef11359796731cdad82\n"
    },
    {
      "commit": "1d36e2c312216528ad721a70e8a29db321e4fdd6",
      "tree": "c75233d9659420716582282d326a08b99f707f72",
      "parents": [
        "8f7e75ac4c0f0a93775be497b44ae85f5bdccbe8",
        "3d0aa88808052436981f589b7af4f1706c365187"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 12:17:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 12:17:07 2016 +0000"
      },
      "message": "Merge \"Adjustments for changes made to java.lang.Class\""
    },
    {
      "commit": "3d0aa88808052436981f589b7af4f1706c365187",
      "tree": "6a6d232b20d5b275dac7ee849ba2fc81d9256afd",
      "parents": [
        "95afcbcc25bb17c9c34e8b7708013b612a3bb581"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Aug 16 19:53:07 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 10:27:36 2016 +0100"
      },
      "message": "Adjustments for changes made to java.lang.Class\n\nFix up the runtime after removal of the annotationType field\nfrom java.lang.Class.\n\nTest: make test-art-host / boot a device\nChange-Id: I5f37567d2b5ec381b35e66fef29287abe307b840\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": "8261d02f9523b95013108f271b82bb157ef6f71d",
      "tree": "026969c0ee61c0deae7a625fba81a711acd218aa",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 08 09:41:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 09:57:01 2016 -0700"
      },
      "message": "Revert \"Revert \"ARM64 asm for region space array allocation\"\"\n\nAlso added missing large object check. No regression from the check\nN6P CC EAAC time at 1313 for 10 samples vs 1314 before reverts.\n\nBug: 30162165\nBug: 12687968\n\nTest: test-art-target with CC + heap poisoning\n\nThis reverts commit 6ae7f3a4541e70f04243a6fe469aa3bd51e16d79.\n\nChange-Id: Ie28f652f619898d7d37eeebf3f31a88af8fac949\n"
    },
    {
      "commit": "6ae7f3a4541e70f04243a6fe469aa3bd51e16d79",
      "tree": "db05e699a9929d11ff47a2b19845a921e360b5ff",
      "parents": [
        "f686c3feabe3519bedd1f3001e5dd598f46946ef"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 14:41:32 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 14:41:32 2016 +0000"
      },
      "message": "Revert \"ARM64 asm for region space array allocation\"\n\nThis change breaks many tests on the ARM64 concurrent\ncollector configuration.\n\nBug: 30162165\nBug: 12687968\n\nThis reverts commit f686c3feabe3519bedd1f3001e5dd598f46946ef.\n\nChange-Id: I5d7ef5fa2ffb6a8d9a4d3adbcc14854efa257313\n"
    },
    {
      "commit": "f686c3feabe3519bedd1f3001e5dd598f46946ef",
      "tree": "234494fbb4fcf640df4676659d6cf6f987e0d3ab",
      "parents": [
        "20b975cc5c5a1f4e6f0a8e525b5d2e63abc413df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 04 11:08:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 05 10:42:03 2016 -0700"
      },
      "message": "ARM64 asm for region space array allocation\n\nWrote region space tlab array and array resolved allocators in\nassembly code. The speedup is a combined increase from checking the\nmark bit and having an assembly fast path.\n\nAdded resolved, initialized entrypoints for object region TLAB\nallocator.\n\nN6P (960000 mhz) EEAC benchmark (average of 50 samples):\nCC 1442.309524 -\u003e 1314 (10% improvement)\nCMS: 1382.32\n\nRead barrier slow paths reaching C++ code go from 5M to 2.5M.\n\nBug: 30162165\nBug: 12687968\n\nTest: With CC: N6P boot, run EAAC, test-art-target\n\nChange-Id: I51515b11ef3f795f57eb72fe0f5759618fef5084\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": "311fdf52f7d33b988130d07b3d3a86eb148051ca",
      "tree": "107308e59eb8cf528ff74029c3c180ca2a7242a6",
      "parents": [
        "a69e790ad9751807d4a660bb4432b7ea79f0ad3b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 22 15:59:16 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jul 25 15:15:03 2016 -0700"
      },
      "message": "runtime: Refactor asm_support to be auto-generated (mostly)\n\nUsage:\n\n* If the defines are no longer up to date, re-run generate-asm-support\n\n* To add a new field:\n--- Edit one of the offset_ or constant def files.\n--- Rebuild cpp-define-generator and re-run generate-asm-support\n\nChange-Id: I772430fcf1ad9af40898ebb453848f8412612386\nTODO: Integrate this into the build somehow\nTODO: Account for 32 vs 64-bit and read barrier vs no read barrier\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": "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": "e6a2d0ff48201990d16bc02c5e40f07a6413e7f9",
      "tree": "9a7668241ff3d3be614fd6b9d324cd1caa645a38",
      "parents": [
        "2e7acaffda05db1df6e0631468f10726e898a20a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 08 14:21:44 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 08 14:59:08 2016 +0100"
      },
      "message": "Fix the definition of THREAD_CURRENT_IBASE_OFFSET.\n\nThe difference between between\nart::Thread::tlsPtr_.mterp_current_ibase and\nart::Thread::tlsPtr_.thread_local_objects is sizeof(size_t),\nnot sizeof(void*) (even if they have the same value on all\nsupported platforms/compilers in practice).\n\nTest: ART host tests.\nChange-Id: I70d196732499bd0cd073983de564547d08ee59ef\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": "952e1e3710158982941fc70326e9fddc3021235d",
      "tree": "79ba4922cbe7a28d32078516d1667f90354bee6b",
      "parents": [
        "ece5386eeb30aa6be663af2416b68a7ebf9bd42e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 13 14:04:02 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 13 18:10:02 2016 -0700"
      },
      "message": "Support unlimited pending checkpoints\n\nPrevents the spinning that used to happen if RunCheckpoint was called\nwith 3 pending checkpoints. This spinning was done when holding\nthread_list_lock_ and thread_suspend_count_lock_ and could deadlock\nif any of the pending checkpoints required any of these locks.\n\nThe fix is to use an overflow list instead of having a fixed limit of\n3.\n\nChanged suspend stress test to have more threads and only compare last\nline since there may be libbacktrace spam like:\n\"+E/libbacktrace(69891): void SignalHandler(int, siginfo_t *, void *):\nTimed out waiting for unwind thread to indicate it completed.\"\n\nBug: 28988206\n\nChange-Id: I2ae611506147d5199d59a08eee0395f7fa35d448\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": "274fe4adcb0610a9920be7814d9beb9cac6417ce",
      "tree": "4a5c41dd2568869ceaf0a510e37065a606f512fb",
      "parents": [
        "6990775e323cd9164d6cc10955a047b9d9f15f32"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 12 16:33:24 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 13 17:34:53 2016 +0100"
      },
      "message": "Remove the JIT from the instrumentation framework.\n\nThis was slowing down the interpreter for no reason.\nAlso, call AddSamples for invoke-static and invoke-direct.\n\nChange-Id: I7b5641097f7741dd32feb1ce6af739fd27fb37c2\n"
    },
    {
      "commit": "1d011d9306fd4ff57d72411775d415a86f5ed398",
      "tree": "fadba83b9fb32840ff777948ace3bd8eb477e38f",
      "parents": [
        "82a0229e949eb3ea209c2bd33fe2d60908f5dbc7"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Apr 04 16:59:29 2016 +0000"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Apr 08 09:04:10 2016 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\"\"\"\n\nBug: 28081559\n\nThis reverts commit 961ea9fe42edcc2c57469bf451d1ca421da5cd59.\n\nChange-Id: I98a5bb8112646706ae7bd73bf6393cb956466be3\n"
    },
    {
      "commit": "961ea9fe42edcc2c57469bf451d1ca421da5cd59",
      "tree": "eb1930308f9f64a108e3f2387faca90cff869509",
      "parents": [
        "6b7d2c09b4710503a72ff5de31bff5cb23a3a921"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 01 12:02:58 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 01 12:02:58 2016 -0700"
      },
      "message": "Revert \"Revert \"Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\"\"\n\nThis reverts commit 4a8ac9cee4312ac910fabf31c64d28d4c8362836.\n\n570-checker-osr intermittently failing.\n\nBug: 27939339\n"
    },
    {
      "commit": "4a8ac9cee4312ac910fabf31c64d28d4c8362836",
      "tree": "a9d662cb43a3fe1c071618ef78f772655bfc4442",
      "parents": [
        "ec898396658bc6a36e2b3c32569fbcb034d60e22"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 25 13:16:55 2016 +0000"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 29 15:48:45 2016 -0700"
      },
      "message": "Revert \"Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\"\n\nReady for review.\n\nThis reverts commit 6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e.\n\nChange-Id: I5d53ed2bedc7e429ce7d3cdf80b6696a9628740e\n"
    },
    {
      "commit": "6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e",
      "tree": "cda140806a091805213edca2708e69337f6869ef",
      "parents": [
        "1cb8689ccc23fd513c5472911dd07e44b55e9c8d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 25 11:27:48 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 25 11:27:48 2016 +0000"
      },
      "message": "Revert \"ART: Improve JitProfile perf in arm/arm64 mterp\"\n\nThis reverts commit c1d6b341eed646e5adafc6c4fd4e3748f0292368.\n"
    },
    {
      "commit": "42cd3cb6379fe3faf078dcce98610e90155bc8e0",
      "tree": "59ff8135fcfa13b8263afe0d77b58dce6cc2ea0b",
      "parents": [
        "62e78a7ea8221f3fbe848fa883fb86c9d87ba50b",
        "c1d6b341eed646e5adafc6c4fd4e3748f0292368"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Mar 24 16:16:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 24 16:16:59 2016 +0000"
      },
      "message": "Merge \"ART: Improve JitProfile perf in arm/arm64 mterp\""
    },
    {
      "commit": "c1d6b341eed646e5adafc6c4fd4e3748f0292368",
      "tree": "ddee928954b03a919ce601f12876f1fe161d577a",
      "parents": [
        "eecf60d51b481647c8508f22b3d6ce437773ea0c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 01 15:03:16 2016 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Mar 23 11:11:26 2016 -0700"
      },
      "message": "ART: Improve JitProfile perf in arm/arm64 mterp\n\nART currently requires two profiling-related things from the\ninterpreters: hotness updates and OSR switch checks.  The hotness\nupdates previously used the existing instrumentation framework - which\nis flexible, but quite heavyweight.  For most things, the\ninstrumentation framework overhead is acceptable, but because we do a\nhotness update on every backwards branch the overhead is unacceptable.\nPrior to this CL, branch profiling dominates interpreter cost.\n\nHere, we bypass the instrumentation framework for hotness updates\nand deliver a significant performance improvement.  Running\ninterpreter-only (dalvikvm -Xint) on a Nexus 6, we see the logic\nsubtest of Caffeinemark improving from 2600 to 9200, and the\noverall score going from 1979 to over 3000.  Compared to the\nC++ switch interpreter, we see a 6x improvement on the branchy logic\nsubtest and a 2.6x improvement overall.\n\nCompared with the previous mterp which did not have support for\njit profiling, we see a few (1% to 5%) performance loss on the\nstandard command-line benchmarks.  I consider this acceptable\n(we could create an alternate non-profiling mterp which would\nhave no penalty, but I don\u0027t consider this overhead big enough to\njustify that).\n\nChange-Id: I50b5b8c5ed8ebda3c8b4e65d27ba7393c3feae04\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": "d72945c6b18831630af8755fcf041f5a59c82cae",
      "tree": "413977fb152b0db8b19320431d5d620521d5751a",
      "parents": [
        "8e57978b5f330a322f05644c2db7fa8ce89b1b46"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 16 11:23:10 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 16 13:54:01 2016 -0700"
      },
      "message": "Revert \"Revert \"Assembly TLAB allocation fast path for arm64.\"\"\n\nThis reverts commit 52fa2c698b995c21940f366cf3a44204ddf4f8e9.\n\nFix the mvn instructions.\n\nBug: 9986565\nChange-Id: Ib7b2023cd54c57131442e1de85c64f40b818313d\n"
    },
    {
      "commit": "52fa2c698b995c21940f366cf3a44204ddf4f8e9",
      "tree": "976463c15a1616b128551d32b3fdea6c8b48a3a5",
      "parents": [
        "4344e11598b3079032773ad7e381658f39bed92e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 16 10:23:03 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 16 10:23:31 2016 +0000"
      },
      "message": "Revert \"Assembly TLAB allocation fast path for arm64.\"\n\nAssembly code does not compile\nBug: 9986565\n\nThis reverts commit b7e52b02a82c69e59c88f06945fb21672dfe9923.\n\nChange-Id: I80de1bcd6270e2d76f79cb708811a41c039ea5bb\n"
    },
    {
      "commit": "b7e52b02a82c69e59c88f06945fb21672dfe9923",
      "tree": "89700d959a34dfd18a65e98db3b4b22dde6761a0",
      "parents": [
        "2f74be0856b56942614ec65896853a58a37b7aff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 09 21:14:41 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 15 11:31:18 2016 -0700"
      },
      "message": "Assembly TLAB allocation fast path for arm64.\n\nThis is the arm64 version of CL 187537.\n\nSpeedup (GSS GC with TLAB on N9):\n        BinaryTrees:   591 -\u003e  493 ms (-17%)\n        MemAllocTest:  792 -\u003e  755 ms (-5%)\n\nBug: 9986565\n\nChange-Id: Icdad28cab0fd835679c640b7eae59b33ac2d6654\n"
    },
    {
      "commit": "10d4c08c0ea9df0a85a11e1c77974df24078c0ec",
      "tree": "6d56cd6cfdac03d6fb6a1cb66153f2179c858f49",
      "parents": [
        "da11cef6fb6d8a9e08cb445576a50abff8773a25"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Feb 24 12:51:18 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 11 13:16:55 2016 -0800"
      },
      "message": "Assembly region TLAB allocation fast path for arm.\n\nThis is for the CC collector.\n\nShare the common fast path code with the tlab fast path code.\n\nSpeedup (on N5):\n        BinaryTrees:  2291 -\u003e  902 ms (-60%)\n        MemAllocTest: 2137 -\u003e 1845 ms (-14%)\n\nBug: 9986565\nBug: 12687968\n\nChange-Id: Ica63094ec2f85eaa4fd04d202a20090399275d85\n"
    },
    {
      "commit": "7e1ce285c3c2cbd8d97c744699c2f2347fa7487b",
      "tree": "40d525eeda56a05576cb396a72479c366d2d463f",
      "parents": [
        "4e4e64511e530db37b33f450016afe49db3c4b20"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 11 15:46:19 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 25 14:00:48 2016 -0800"
      },
      "message": "Assembly TLAB allocation fast path for arm.\n\nSpeedup (GSS GC with TLAB on N5):\n    BinaryTrees:  1872 -\u003e  796 ms (-57%)\n    MemAllocTest: 2522 -\u003e 2219 ms (-12%)\n\nBug: 9986565\nChange-Id: Icb9d1259461f3abe83a4a82c8aff911937eaf57d\n"
    },
    {
      "commit": "7ed9c561048d79083b6d0576c71a986a3123bca6",
      "tree": "8e352f05dc5e82126dd61e0e8e6ddb2a1003e16a",
      "parents": [
        "c3cf1d2e35a45bd2e2c60fbc9c2a1a6a56dfc529"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 02 15:22:09 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 05 12:12:44 2016 -0800"
      },
      "message": "Use 8-byte increment bracket sizes for rosalloc thread local runs.\n\nVery small space savings (\u003c 1%) after device boot and up to 10%\nallocation speedup.\n\nSome minor cleanup.\n\nBug: 9986565\n\nChange-Id: I51d791c4674d6944fe9a7ee78537ac3490c1a02c\n"
    },
    {
      "commit": "1452bee8f06b9f76a333ddf4760e4beaa82f8099",
      "tree": "8ffb80498cd8fdff66a4ab272723cf4d4e69e57b",
      "parents": [
        "7f9ea1451bb74055ee5d51ae04fc869faa06cbdd"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 06 14:43:04 2015 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Jan 11 13:04:49 2016 -0800"
      },
      "message": "Fast Art interpreter\n\nAdd a Dalvik-style fast interpreter to Art.\nThree primary deficiencies in the existing Art interpreter\nwill be addressed:\n\n1.  Structural inefficiencies (primarily the bloated\n    fetch/decode/execute overhead of the C++ interpreter\n    implementation).\n2.  Stack memory wastage.  Each managed-language invoke\n    adds a full copy of the interpreter\u0027s compiler-generated\n    locals on the shared stack.  We\u0027re at the mercy of\n    the compiler now in how much memory is wasted here.  An\n    assembly based interpreter can manage memory usage more\n    effectively.\n3.  Shadow frame model, which not only spends twice the memory\n    to store the Dalvik virtual registers, but causes vreg stores\n    to happen twice.\n\nThis CL mostly deals with #1 (but does provide some stack memory\nsavings).  Subsequent CLs will address the other issues.\n\nCurrent status:\n   Passes all run-tests.\n   Phone boots interpret-only.\n   2.5x faster than Clang-compiled Art goto interpreter on fetch/decode/execute\n       microbenchmark, 5x faster than gcc-compiled goto interpreter.\n   1.6x faster than Clang goto on Caffeinemark overall\n   2.0x faster than Clang switch on Caffeinemark overall\n   68% of Dalvik interpreter performance on Caffeinemark (still much slower,\n       primarily because of poor invoke performance and lack of execute-inline)\n   Still nearly an order of magnitude slower than Dalvik on invokes\n       (but slightly better than Art Clang goto interpreter.\n   Importantly, saves ~200 bytes of stack memory per invoke (but still\n       wastes ~400 relative to Dalvik).\n\nWhat\u0027s needed:\n   Remove the (large quantity of) bring-up hackery in place.\n   Integrate into the build mechanism.  I\u0027m still using the old Dalvik manual\n       build step to generate assembly code from the stub files.\n   Remove the suspend check hack.  For bring-up purposes, I\u0027m using an explicit\n       suspend check (like the other Art interpreters).  However, we should be\n       doing a Dalvik style suspend check via the table base switch mechanism.\n       This should be done during the alternative interpreter activation.\n   General cleanup.\n   Add CFI info.\n   Update the new target bring-up README documentation.\n   Add other targets.\n\nIn later CLs:\n   Consolidate mterp handlers for expensive operations (such as new-instance) with\n       the code used by the switch interpreter.  No need to duplicate the code for\n       heavyweight operations (but will need some refactoring to align).\n   Tuning - some fast paths needs to be moved down to the assembly handlers,\n       rather than being dealt with in the out-of-line code.\n   JIT profiling.  Currently, the fast interpreter is used only in the fast\n       case - no instrumentation, no transactions and no access checks. We\n       will want to implement fast + JIT-profiling as the alternate fast\n       interpreter.  All other cases can still fall back to the reference\n       interpreter.\n   Improve invoke performance.  We\u0027re nearly an order of magnitude slower than\n       Dalvik here.  Some of that is unavoidable, but I suspect we can do\n       better.\n   Add support for our other targets.\n\nChange-Id: I43e25dc3d786fb87245705ac74a87274ad34fedc\n"
    },
    {
      "commit": "9c5572957bf357897f0969d002132fc647bfa649",
      "tree": "84e853d076d2a7449e0eba1710b2a4b3d0872fda",
      "parents": [
        "90f5250d4ba7bcf6066edb022f8325df66d686f3",
        "9f784b26a13101222c5e5927cafd7f500d3cff67"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 17 15:48:01 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 17 15:48:01 2015 -0800"
      },
      "message": "resolve merge conflicts of 9f784b26a1 to master.\n\nChange-Id: I9ebcb6e3d51be922e08e5f867fb8dcaf5cb9788d\n"
    },
    {
      "commit": "e64300b8488716056775ecbfa2915dd1b4ce7e08",
      "tree": "be23a7086c1e369527dda5450a9868f2d29c5669",
      "parents": [
        "bc90a0538e56f98b8e138cb622e6b9d834244ad9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 15:02:47 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 16 14:16:31 2015 -0800"
      },
      "message": "Revert \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\"\n\nThis reverts commit ae358c1d5cef227b44d6f4971b79e1ab91aa26eb.\n\nBug: 24618811\n\nChange-Id: I8becf9bae3258450b90cfef5e79589db7c535a4d\n"
    },
    {
      "commit": "bc90a0538e56f98b8e138cb622e6b9d834244ad9",
      "tree": "fd85833863a13ce4abc7baaea1d2059c2419ad1e",
      "parents": [
        "0bbc1727c446ee5f4cc3c28e68127164ef379594",
        "ae358c1d5cef227b44d6f4971b79e1ab91aa26eb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:17:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 15 22:17:21 2015 +0000"
      },
      "message": "Merge \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\""
    },
    {
      "commit": "533d63aa028949e393320ad2ffec0ba6e6a8f627",
      "tree": "05038200d2277f69aa7de0165bb8d0243b6fc2ac",
      "parents": [
        "f64ddd3acdfa37d8e03d827e3c98e27ffd627179",
        "2efb0aa57da168944f99a2d13aed2a426cfa76e7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:16:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 22:16:25 2015 +0000"
      },
      "message": "Merge \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\""
    },
    {
      "commit": "2efb0aa57da168944f99a2d13aed2a426cfa76e7",
      "tree": "5ca742f9a2a89f9c3c588f6f1863ab55bbdb5c5c",
      "parents": [
        "9539150b85142c18e9e8c2264b5b6100942667c3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:34 2015 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:34 2015 +0000"
      },
      "message": "Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\n\nThis reverts commit 9539150b85142c18e9e8c2264b5b6100942667c3.\n\nChange-Id: I596876cd643ec0ad524a56621efb6b89e8886230\n"
    },
    {
      "commit": "ae358c1d5cef227b44d6f4971b79e1ab91aa26eb",
      "tree": "95c22194af5ea38a4fa5fc8bbe07ba60b6d0a021",
      "parents": [
        "6286a97bea0f584342803a215550038852b24776"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:26 2015 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:26 2015 +0000"
      },
      "message": "Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\n\nThis reverts commit 6286a97bea0f584342803a215550038852b24776.\n\nChange-Id: I5b00f6d1350e9c587acd4b185367dc815ea707de\n"
    },
    {
      "commit": "e6f84a505e074da4ce14df1f067ed68a8fdcabb3",
      "tree": "db5e2dbb4d9c61aeff6d7565789fe67a97f4957c",
      "parents": [
        "b3ea82b37b14842dde81de0833e515f97f31a76c",
        "9539150b85142c18e9e8c2264b5b6100942667c3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 18:53:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 18:53:58 2015 +0000"
      },
      "message": "Merge \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\""
    },
    {
      "commit": "7d5a577c1f256a7703361afb071dcd4ecc7d275f",
      "tree": "d5d151bf0502af93fe8826f368807ab1df7734aa",
      "parents": [
        "ad94d64719c2a82cdd312b318b8e50d80e2956c5",
        "6286a97bea0f584342803a215550038852b24776"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 18:11:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 15 18:11:08 2015 +0000"
      },
      "message": "Merge \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\""
    },
    {
      "commit": "523ef21c76a4ec20b6f94d5faddd5f0640cbc646",
      "tree": "6269ad5ab8b4dc5ba2f02827d84c5a3da752243e",
      "parents": [
        "629e8f9a364c5b90423ab48a478ca03b1fea2644",
        "12c3fd4dd9cdf45df583d6c9ab406af2187b1e1f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 15 08:18:43 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 15 08:18:43 2015 -0800"
      },
      "message": "Merge \"x86 Baker\\\u0027s read barrier fast path implementation.\" am: 089ff4886a\nam: 12c3fd4dd9\n\n* commit \u002712c3fd4dd9cdf45df583d6c9ab406af2187b1e1f\u0027:\n  x86 Baker\u0027s read barrier fast path implementation.\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": "9539150b85142c18e9e8c2264b5b6100942667c3",
      "tree": "733f2af56f94cbac19ac29f62d85850df2fd7b7d",
      "parents": [
        "1997d7cef12ac9906c23b59fdaa9f7f68344b98d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 03 17:38:56 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 14 14:54:01 2015 -0800"
      },
      "message": "Combine direct_methods_ and virtual_methods_ fields of mirror::Class\n\nManual cherry-pick of 6286a97 to master\n\nThis makes several parts of the overall runtime simpler and reduces\nthe size of a class object by 32-bits.\n\nBug: 24618811\n\nChange-Id: I36129b52189e26898ea56fa2b7b45652e06af236\n"
    },
    {
      "commit": "6286a97bea0f584342803a215550038852b24776",
      "tree": "3571735bdc691bf30e33abb65a95ada8c71a18b7",
      "parents": [
        "377cb3ba2e1cfe51967e5292268a9aae71ceca8c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 03 17:38:56 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 14 14:27:32 2015 -0800"
      },
      "message": "Combine direct_methods_ and virtual_methods_ fields of mirror::Class\n\nThis makes several parts of the overall runtime simpler and reduces\nthe size of a class object by 32-bits.\n\nBug: 24618811\n\nChange-Id: I36129b52189e26898ea56fa2b7b45652e06af236\n"
    },
    {
      "commit": "cddac8bd8f57266314b9d546fe6251a00e3cb065",
      "tree": "359fed3381c7d65d0d6ba8cd6f50c65bbec8de4c",
      "parents": [
        "70cdba196cef4cfd7955f331a892f6dbe8cd073e",
        "e67b966422d4f42fd7e38d938b0f2ee88b096448"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 11 03:45:28 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 03:45:28 2015 -0800"
      },
      "message": "Merge \"Optimizing: Add direct calls to math intrinsics\" am: 376cbcc516\nam: e67b966422\n\n* commit \u0027e67b966422d4f42fd7e38d938b0f2ee88b096448\u0027:\n  Optimizing: Add direct calls to math intrinsics\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": "a7a4759946d9f11c88dc108b2b6a9518ce9c1e18",
      "tree": "f5522eb632ff53b4c285ff76a3966d37a995777a",
      "parents": [
        "099ab4d06857ccbe642d98ba25df1eb02aee99c7"
      ],
      "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 10:54:16 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\n(cherry picked from commit 3a0909248e04b22c3981cbf617bc2502ed5b6380)\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\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": "121b25e246b7012cfd895f205855c6102da48305",
      "tree": "8d7e4dae58b59e9a554db03a06c800f3caf5b6b9",
      "parents": [
        "31f7afcd651ca5836892d1c24010933fa40c29e4",
        "13ca74fed068a6a49221b5213ce0b1bebeda3ed6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Nov 20 11:24:33 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Nov 21 16:28:15 2015 +0000"
      },
      "message": "Merge mnc-dr-enso-dev into goog/master\n\nBug: 25758743\nChange-Id: I19d433934f01856e7b5a7392a58b759c3ac386e7\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": "d1ef4362bf799f9f5d50e5edef8433664b503051",
      "tree": "59aaa140925efa790f787d5e1caf6d0cafd6ae15",
      "parents": [
        "e4cf5892c2a244034900d49499c071b255571bba",
        "f32e8327da5dd33abe18662fbca5e584cd047816"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:49:06 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:52:42 2015 +0000"
      },
      "message": "Merge lmp changes into mnc.\n\nMost merge conflicts are due to changes in the string representation.\nThey have been resolved in favour of \"mnc-dev\" since we\u0027ve changed\nthe string representation there. Other changes relate to the\nfact that there are now two jars in libcore (core-oj and core-libart).\n\nChange-Id: I1fcc6e5f8dab8d1954dcddca0493563e7677d433\n"
    },
    {
      "commit": "3c183cec1fb337ed0247ba500c6949063072f565",
      "tree": "f299a44f698ccde8b4ab4420851ca55ed004b571",
      "parents": [
        "13ceeb2b729646d2a6061b70ce91c3cab16f3d6b"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Jul 31 16:30:08 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 11 15:16:34 2015 +0000"
      },
      "message": "Fix asm for String#indexOf/compareTo intrinsics\n\nFixed code for arm arch, it\u0027s still broken\non remaining architectures (will be done soon in\nfollowing CLs).\n\nOpenJdk string lacks offset and length fields and requires\nuser to fetch the length from array object.\n\nChange-Id: I682911e4ee72d9597e8a9735ac414c837569eb8e\n"
    },
    {
      "commit": "84dcb99f3192f6513bdf997fb2a8b956a4f9d834",
      "tree": "b3d806e4888fe0afd77cf7fab87a1b5da9414e79",
      "parents": [
        "29f33e6bdb6188f55de909f01c23d6bea7fd000e"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Tue May 19 12:15:00 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 09 11:06:45 2015 +0000"
      },
      "message": "Update layout of Class.class.\n\nChange-Id: I50d809aebdd54ac668f05544de86b39dc3601e68\n"
    },
    {
      "commit": "dc412b6f49a65774b7af654f65cbff619cb7d85a",
      "tree": "f8455c6deb4bb3c96d21e2135d55a1a658045e47",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 15 12:26:57 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 15 15:32:41 2015 -0700"
      },
      "message": "Revert \"Revert \"Implement rosalloc fast path in assembly for 32 bit arm.\"\"\n\nWith a heap poisoning fix.\n\nThis reverts commit cf91c7d973f3b2f491abc61d47c141782c96d46e.\n\nBug: 9986565\nChange-Id: Ia72edbde65ef6119e1931a77cc4c595a0b80ce31\n"
    },
    {
      "commit": "a2b2e7365d66553164247bafae214f157d480277",
      "tree": "11fc65a360fb2ff3b4388be0558a39b09eca330a",
      "parents": [
        "d2e0dd179fd2e8c6c820194e187fc5e9164154ff",
        "cf91c7d973f3b2f491abc61d47c141782c96d46e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 07:30:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 15 07:30:00 2015 +0000"
      },
      "message": "Merge \"Revert \"Implement rosalloc fast path in assembly for 32 bit arm.\"\""
    },
    {
      "commit": "cf91c7d973f3b2f491abc61d47c141782c96d46e",
      "tree": "b94c289f567014ba56bcd4dec76066085819e90b",
      "parents": [
        "e6316940db61faead36f9642cce137d41fc8f606"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 07:29:38 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 07:29:38 2015 +0000"
      },
      "message": "Revert \"Implement rosalloc fast path in assembly for 32 bit arm.\"\n\nTentative. Looks like heap poisoning breaks with this change.\n\nbug: 9986565\n\nThis reverts commit e6316940db61faead36f9642cce137d41fc8f606.\n\nChange-Id: I5c63758221464fe319315f40ae79c656048faed0\n"
    },
    {
      "commit": "2248d278460f18db9bcdc5a1bdb2dcdfdde2d301",
      "tree": "769455c0ea777310518cf4d8a4af9ecb45c968d0",
      "parents": [
        "bf8fd42a6390d5694fe387b9bc876fc510645810",
        "e6316940db61faead36f9642cce137d41fc8f606"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 14 18:18:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 14 18:18:24 2015 +0000"
      },
      "message": "Merge \"Implement rosalloc fast path in assembly for 32 bit arm.\""
    },
    {
      "commit": "e6316940db61faead36f9642cce137d41fc8f606",
      "tree": "cf0a97827af4679be4112d056855b5a673ee3a32",
      "parents": [
        "8c812b71552a8a1b2bf06e430d355b12b7084807"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 07 15:41:48 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 13 13:06:20 2015 -0700"
      },
      "message": "Implement rosalloc fast path in assembly for 32 bit arm.\n\nMeasurements (N5, ms)\nBinaryTrees:  1702 -\u003e  987 (-42%)\nMemAllocTest: 2480 -\u003e 2270  (-8%)\n\nBug: 9986565\n\nChange-Id: I460af3626ad724078463d27cf74a94b7ff7468c5\n"
    },
    {
      "commit": "3cfa4d05afa76e19ca99ec964b535a15c73683f0",
      "tree": "28c4950dff3700f69e3d32fc496890a722cfc379",
      "parents": [
        "f4156986d1ba5b6dd7dfe89754c8562557cd1bc5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 06 17:04:01 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 07 09:50:25 2015 -0700"
      },
      "message": "ART: Remove interpreter entrypoints\n\nThese are no longer used as entrypoints. Make them proper runtime\nfunctions local to the interpreter.\n\nBump oat version.\n\nChange-Id: Icdd92e20eafc5668b68eeebf55cf624560f462b3\n"
    },
    {
      "commit": "99170c636dfae4908b102347cfe9f92bad1881cc",
      "tree": "1ecff5dd69ea20b09e622cb88e7835a55dfa4be8",
      "parents": [
        "5836f8465ddd0a7f5cbeec9c30d739bd0619867f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Jul 06 11:10:37 2015 -0700"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Sep 17 17:07:22 2015 +0200"
      },
      "message": "Deoptimization support in optimizing compiler for setting local values\n\nDue to compiler optimizations, we may not always be able to update\nthe value of a local variable in a compiled frame (like a variable\nseen as constant by the compiler). To avoid that situation, we simply\ndeoptimize compiled frames updated by the debugger so they are\nexecuted by the interpreter with the updated value.\n\nWhen the debugger attempts to set a local variable (actually a DEX\nregister or a pair of registers) in a compiled frame, we allocate a\nShadowFrame associated to that frame (using its frame id) and set the\nnew value in that ShadowFrame. When we know we are about to continue\nthe execution of the compiled frame, we deoptimize the stack using\nthe preallocated ShadowFrame (instead of creating a new one). We\ninitialize it with the current value of all DEX registers except\nthe ones that have been set by the debugger. Therefore, the\nShadowFrame represent the runtime context modified by the debugger.\n\nBumps oat version to force recompilation.\n\nBug: 19944235\nChange-Id: I0ebe6241264f7a3be0f14ee4516c1f7436e04da6\n"
    },
    {
      "commit": "05792b98980741111b4d0a24d68cff2a8e070a3a",
      "tree": "bad79a387bcbdaefc87c07b388099960ca9caff3",
      "parents": [
        "c26b4512a01d46756683a4f5e186a0b7f397f251"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 03 11:56:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 17:30:57 2015 +0100"
      },
      "message": "ART: Move DexCache arrays to native.\n\nThis CL has a companion CL in libcore/\n    https://android-review.googlesource.com/162985\n\nChange-Id: Icbc9e20ad1b565e603195b12714762bb446515fa\n"
    },
    {
      "commit": "0747466fca310eedea5fc49e37d54f240a0b3c0f",
      "tree": "6d27922fa35330dd8d863ea56c82c5f04b711822",
      "parents": [
        "9ee5d6cdc14ac94b64ea1961bf221bad48746929"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:12:33 2015 +0000"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Aug 26 16:54:32 2015 +0200"
      },
      "message": "Revert \"Revert \"Fix deoptimization with pending exception\"\"\n\nThis reverts commit 6e2d5747d00697a25251d25dd33b953e54709507.\n\nFixes the deoptimization path from compiled code (generated by the\nOptimizing compiler) by adding wrapper artDeoptimizeFromCompiledCode.\nThis wrapper, called through the matching assembler stub\nart_quick_deoptimize_from_compiled_code, pushes the deoptimization\ncontext just before deoptimizing the stack.\n\nBug: 23371176\nBug: 19944235\nChange-Id: Ia7082656998aebdd0157438f7e6504c120e10d3e\n"
    },
    {
      "commit": "6e2d5747d00697a25251d25dd33b953e54709507",
      "tree": "b68a418e93780ed55abd79dc8e76f3459e884254",
      "parents": [
        "54b62480636ae846d705fc180c7bd6cd08ec1e42"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:05:17 2015 +0000"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:05:17 2015 +0000"
      },
      "message": "Revert \"Fix deoptimization with pending exception\"\n\nThis reverts commit 54b62480636ae846d705fc180c7bd6cd08ec1e42.\n\nThis is causing test failures with Optimizing compiler.\n\nBug: 23371176\nBug: 19944235\nChange-Id: Ie3ffbcf2b6d2ca8bc93cb008a4e29a7567d04a7c\n"
    },
    {
      "commit": "54b62480636ae846d705fc180c7bd6cd08ec1e42",
      "tree": "d46a6c7bebb45ddbbd5b0a6818b3bb2ce49f48ed",
      "parents": [
        "f0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Aug 20 12:07:57 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:13:49 2015 +0200"
      },
      "message": "Fix deoptimization with pending exception\n\nWhen deoptimizing the stack, we set a fake exception in the current\nThread* (see method Thread::GetDeoptimizationException). On the next\nexception check, the QuickExceptionHandler will deoptimize the stack.\n\nThe issue is when we deoptimize while an exception is already pending\nin the current Thread*: setting the fake exception will clobber the\npending exception which is not correct. This happens in the\nartQuickToInterpreterBridge when returning from the interpreter and\nwe want to deoptimize the stack for debugging (like single-stepping).\n\nThis CL saves the pending exception before asking for deoptimization.\nThen the exception is restored just before executing the deoptimized\nframes with the interpreter.\n\nAlso cleans up the way we save deoptimization context (return value\nand pending exception).\n\nBug: 23371176\nBug: 19944235\nChange-Id: I7f4c8347b328817c452beda3399e210eba3a88a4\n"
    },
    {
      "commit": "52a7f5caebdf359ab877f1928aad59f1e9ad29fa",
      "tree": "fe23aeb3682128a31c62324e427b906c9804afd3",
      "parents": [
        "944973e56fd3c04c92d902b05d0148f77ed28a78"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 18 18:35:52 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 21 10:25:36 2015 -0700"
      },
      "message": "Add class flags to class to help GC scanning\n\nReduces GC time and pauses by reducing the number of loads required\nto scan an object.\n\nAverage total GC time before on EvaluateAndApplyChanges (EAAC): 7.452s\nAfter: 7.144s\n\nAverage GC pause times before on EAAC: 860.67us\nAfter: 722.75us\n\nAdding the class flags field cause a memory increase of ~24k system\nwide on low memory devices.\n\nChange-Id: I3f04212d5787bfbf5e55026584d149f55476105e\n"
    },
    {
      "commit": "54d220eb9cc51215d75b9e0fe921b94bebbb3fd6",
      "tree": "fe08749dea3ca6cad97bce48416beb37203efdf5",
      "parents": [
        "275bc5e5f318ba6ea1bad6c89c2924d1248b7523"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 30 16:20:06 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 05 18:15:22 2015 -0700"
      },
      "message": "Move ArtFields and ArtMethods to be a length prefixed array\n\nFixes race conditions between changing method and fields arrays\nbeing seen in the wrong order by the GC.\n\nBug: 22832610\nChange-Id: Ia21d6698f73ba207a6392c3d6b9be2658933073f\n"
    },
    {
      "commit": "1aee900d5a0b3a8d78725a7551356bda0d8554e1",
      "tree": "325cb4ce99cf7824eb56dda1d85f23ad9c74f10a",
      "parents": [
        "a09d5df5128c5c51226028d4a82ed461cf993024"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Tue Jul 14 22:31:42 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Tue Jul 28 10:45:02 2015 -0700"
      },
      "message": "Add read barrier support to the entrypoints.\n\nAlso remove \"THIS_LOAD_REQUIRES_READ_BARRIER\" since reading\nan ArtMethod* no longer needs read barrier.\n\nstub_test should also work with read barriers now.\n\nChange-Id: I3fba18042de2f867a18dbdc38519986212bd9769\n"
    },
    {
      "commit": "ca80ecc94355df7a2b9fa3240be1f74e92638580",
      "tree": "af45e6cceae98d64e51592d64292c78e2b228490",
      "parents": [
        "e6e38ce021ef5e0d326d76172307c000e0e6fab3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 22 17:19:28 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 22 17:19:28 2015 +0100"
      },
      "message": "Fix and extend the documentation of art::Thread\u0027s fields offsets.\n\nChange-Id: Ie13c71d1b734ec0778c388b9bcb7773dcf319f16\n"
    },
    {
      "commit": "c6f3439b67962584cfb764133e192c3317f0e1fc",
      "tree": "58f31ef9ed7155cd386f139be230383d943a1c72",
      "parents": [
        "e978aba24094cce90453ad3294b8c4536ee8e4b4",
        "eac4424b3420c280f97ff2f815b5dedd8dac9801"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 14 01:47:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 14 01:47:39 2015 +0000"
      },
      "message": "Merge \"ART: JNI thread state transition optimization\""
    },
    {
      "commit": "eac4424b3420c280f97ff2f815b5dedd8dac9801",
      "tree": "4e7c31b4312aa000bd3d2250df6a05daf61523d7",
      "parents": [
        "ec97825f8553b3a99b6dfbbb90a50fe65301ea94"
      ],
      "author": {
        "name": "Yu Li",
        "email": "yu.l.li@intel.com",
        "time": "Mon Jun 29 10:50:03 2015 +0800"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Mon Jul 13 15:56:19 2015 -0700"
      },
      "message": "ART: JNI thread state transition optimization\n\nThis patch improves the JNI performance by removing the explicit acquiring and\nreleasing the mutator lock when a thread state transits between suspended and\nrunnable states.\n\nThe functions responsible for changing the state were found to be the costliest\npart of the JNI. Originally, a thread needs to acquire a shared mutator lock by\na CAS instruction when entering the runnable state and also needs to release\nthe lock by a CAS when entering the native state from runnable. This patch\nremoves these CAS operations when a thread state transits between suspended and\nrunnable. A thread in the runnable state is considered to have shared ownership\nof the mutator lock and therefore transitions in and out of the runnable state\nhave associated implication on the mutator lock ownership. Meanwhile, a barrier\nis added to control suspending all threads from running.\n\nJNI transition overhead was reduced by 25% on IA platform and by 17% on ARM\nplatform by this patch, while it has little impact on GC pause time (measured\nwith \"suspend all histogram\").\n\nChange-Id: Icee95d8ffff1bbfc95309a41cc48836536fec689\nSigned-off-by: Yu, Li \u003cyu.l.li@intel.com\u003e\nSigned-off-by: Haitao, Feng \u003chaitao.feng@intel.com\u003e\nSigned-off-by: Lei, Li \u003clei.l.li@intel.com\u003e\n"
    },
    {
      "commit": "0b71357fb52be9bb06d35396a3042b4381b01041",
      "tree": "44b8d6b0ca4a71f33cda55068fa9e14864c55625",
      "parents": [
        "0e87d1809443d41b431ce3a686b4e074df2d7b8b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jun 16 18:29:23 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 13 15:50:20 2015 -0700"
      },
      "message": "Thread-local mark stacks for the CC collector.\n\nThread-local mark stacks are assigned to mutators where they push\nreferences in read barriers to reduce the (CAS) synchronization cost\nin a global mark stack/queue.\n\nWe step through three mark stack modes (thread-local, shared,\nGC-exclusive) and use per-thread flags to disable/enable system weak\naccesses (only for the CC collector) instead of the existing global\none to safely perform the marking phase. The reasons are 1)\nthread-local mark stacks for mutators need to be revoked using a\ncheckpoint to avoid races (incorrectly leaving a reference on mark\nstacks) when terminating marking, and 2) we can’t use a checkpoint\nwhile system weak accesses are disabled (or a deadlock would\nhappen). More details are described in the code comments.\n\nPerformance improvements in Ritzperf EAAC: a ~2.8% improvement\n(13290-\u003e12918) in run time and a ~23% improvement (51.6s-\u003e39.8s) in\nthe total GC time on N5.\n\nBug: 12687968\nChange-Id: I5d234d7e48bf115cd773d38bdb62ad24ce9116c7\n"
    },
    {
      "commit": "7bf2b4f1d08050f80782217febac55c8cfc5e4ef",
      "tree": "61b26b116454c5a114ac4b2f55c71153be7a9d43",
      "parents": [
        "569e81e500725f52116b7d0342ec80a6d1e0089b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 08 10:11:59 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 08 14:22:19 2015 +0100"
      },
      "message": "Revert \"Revert \"Remove interpreter entrypoint in ArtMethod.\"\"\n\nThe start of the interned strings in the image was not aligned\nproperly, now that ArtMethods just need to be word aligned.\n\nThis reverts commit 7070ccd8b6439477eafeea7ed3736645d78e003f.\n\nbug:22242193\n\nChange-Id: I580c23310c33c239fe0e5d15c72f23a936f58ed1\n"
    },
    {
      "commit": "7070ccd8b6439477eafeea7ed3736645d78e003f",
      "tree": "e32dca6b4342ce7b42952e0d9150a85fba361562",
      "parents": [
        "fa2c054b28d4b540c1b3651401a7a091282a015f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 08 09:41:54 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 08 09:41:54 2015 +0000"
      },
      "message": "Revert \"Remove interpreter entrypoint in ArtMethod.\"\n\nBuild failures on bots. Investigating.\n\nThis reverts commit fa2c054b28d4b540c1b3651401a7a091282a015f.\n\nChange-Id: Id65b2009aa66cb291fb8c39758a58e0b0d22616c\n"
    },
    {
      "commit": "fa2c054b28d4b540c1b3651401a7a091282a015f",
      "tree": "d39c2eca12dce2e0366a092b05715b3eab1319b4",
      "parents": [
        "c87c8939ea1bcfbddb954478d527cf1138f4f343"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 14:32:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 08 09:31:25 2015 +0100"
      },
      "message": "Remove interpreter entrypoint in ArtMethod.\n\nSaves 4/8 bytes for each ArtMethod.\n\nChange-Id: I110ecdddf8516b0759a31fa157609643e6d60b15\n"
    },
    {
      "commit": "449357d3f61bdd134967ecdacc3516e1707cf882",
      "tree": "650ef203d23926485398200888cadfc9aa7608fc",
      "parents": [
        "2519fc40d4ae89322d28d1ff610fe81bb90fb564"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 01 22:29:51 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 03 16:10:33 2015 -0700"
      },
      "message": "ART: Refactor Thread::Init\n\nThis refactor allows the parent thread to allocate the JNIEnvExt\nfor the child (with a fallback in place in Init). This allows to\nthrow an OOME in CreateNativeThread instead of aborting in the\nchild.\n\nBug: 21291279\n\n(cherry picked from commit 520abbd0edcf333f07164539620ce65258c72383)\n\nChange-Id: Iccc1a5c202999f5bfacec706d9833e53135ba2fa\n"
    },
    {
      "commit": "520abbd0edcf333f07164539620ce65258c72383",
      "tree": "4a795bdaefc0e8cdff4c2432afa3e5d4de5f779d",
      "parents": [
        "44905ce1c97613a5cb44046049843fe1029a64cf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 01 22:29:51 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 03 12:55:57 2015 -0700"
      },
      "message": "ART: Refactor Thread::Init\n\nThis refactor allows the parent thread to allocate the JNIEnvExt\nfor the child (with a fallback in place in Init). This allows to\nthrow an OOME in CreateNativeThread instead of aborting in the\nchild.\n\nBug: 21291279\nChange-Id: Iccc1a5c202999f5bfacec706d9833e53135ba2fa\n"
    },
    {
      "commit": "3d21bdf8894e780d349c481e5c9e29fe1556051c",
      "tree": "61a5231f36c0dabd73457fec81df103462a05aff",
      "parents": [
        "71f0a8a123fa27bdc857a98afebbaf0ed09dac15"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 02 09:21:27 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\n\n(cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33)\n\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n\nFix some ArtMethod related bugs\n\nAdded root visiting for runtime methods, not currently required\nsince the GcRoots in these methods are null.\n\nAdded missing GetInterfaceMethodIfProxy in GetMethodLine, fixes\n--trace run-tests 005, 044.\n\nFixed optimizing compiler bug where we used a normal stack location\ninstead of double on ARM64, this fixes the debuggable tests.\n\nTODO: Fix JDWP tests.\n\nBug: 19264997\n\nChange-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3\n\nART: Fix casts for 64-bit pointers on 32-bit compiler.\n\nBug: 19264997\nChange-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457\n\nFix JDWP tests after ArtMethod change\n\nFixes Throwable::GetStackDepth for exception event detection after\ninternal stack trace representation change.\n\nAdds missing ArtMethod::GetInterfaceMethodIfProxy call in case of\nproxy method.\n\nBug: 19264997\nChange-Id: I363e293796848c3ec491c963813f62d868da44d2\n\nFix accidental IMT and root marking regression\n\nWas always using the conflict trampoline. Also included fix for\nregression in GC time caused by extra roots. Most of the regression\nwas IMT.\n\nFixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to\ndetached thread.\n\nEvaluateAndApplyChanges:\nFrom ~2500 -\u003e ~1980\nGC time: 8.2s -\u003e 7.2s due to 1s less of MarkConcurrentRoots\n\nBug: 19264997\nChange-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0\n\nFix bogus image test assert\n\nPreviously we were comparing the size of the non moving space to\nsize of the image file.\n\nNow we properly compare the size of the image space against the size\nof the image file.\n\nBug: 19264997\nChange-Id: I7359f1f73ae3df60c5147245935a24431c04808a\n\n[MIPS64] Fix art_quick_invoke_stub argument offsets.\n\nArtMethod reference\u0027s size got bigger, so we need to move other args\nand leave enough space for ArtMethod* and \u0027this\u0027 pointer.\n\nThis fixes mips64 boot.\n\nBug: 19264997\nChange-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "1d316adafda81cb2f30e210d3d108b97c7c11f15",
      "tree": "57aa3ebf536ce612281523ce385cedf583afa93a",
      "parents": [
        "bd0cfef567012fa6c75243d9157ddceaab7cdaac",
        "1cc71ebf333ca323ae0e130fefbce4593e385c10"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon May 11 18:04:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 11 18:04:10 2015 +0000"
      },
      "message": "Merge \"Insert a read barrier in the JNI bridge.\""
    }
  ],
  "next": "1cc71ebf333ca323ae0e130fefbce4593e385c10"
}
