)]}'
{
  "log": [
    {
      "commit": "2a2b4f63f484bd3d6d318d13fe3abf0701d33c08",
      "tree": "bb189e554ba08c268f21b3758167de2cb4d8e800",
      "parents": [
        "bd40af72aac39c53fadca6fe2e8d90f2ba2c4502",
        "2dd053d61c3971fa5b5e179e0a2b5368409c9ba3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 18:23:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 10 18:23:16 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Improve BoundsCheck for constant inputs.\""
    },
    {
      "commit": "effd5bfa62fa3065a8386b192bf60d41c320f6e4",
      "tree": "7bd021367a3e6b0cfd9cd3bf08fb5bd5c177c666",
      "parents": [
        "f92e179efdd070c4d54633ac305199b10f957bd7"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Feb 28 16:59:15 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Mar 10 15:15:15 2017 +0000"
      },
      "message": "ARM: Generate UBFX for HAnd\n\nTest: m test-art-target-run-test-538-checker-embed-constants\nChange-Id: I8e6af76b99543331e8ffec01bd8df3f09890708e\n"
    },
    {
      "commit": "2dd053d61c3971fa5b5e179e0a2b5368409c9ba3",
      "tree": "42e13945e6e3bcb4205c4b4794094710e9c58274",
      "parents": [
        "f92e179efdd070c4d54633ac305199b10f957bd7"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Mar 08 14:54:06 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Mar 10 14:29:12 2017 +0000"
      },
      "message": "ARM: VIXL32: Improve BoundsCheck for constant inputs.\n\nTest: mma test-art-host \u0026\u0026 mma test-art-target\n\nChange-Id: I05051c03dbd3684c674096def84020494d28364b\n"
    },
    {
      "commit": "d1d4530ffa97729aa8944932a7ac2009ae51c7e3",
      "tree": "b544c9de6459c97b3e51d3984b2348cb0c48df4a",
      "parents": [
        "5ed51e3176f3dc4ff2e50ba4bf52743d404b5b4f",
        "426b49c45d8088ff3114d3fbcec26db4e00c9324"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 09 15:11:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 15:11:24 2017 +0000"
      },
      "message": "Merge \"ARM(64): Improve the code generated for HSelect\""
    },
    {
      "commit": "5ed51e3176f3dc4ff2e50ba4bf52743d404b5b4f",
      "tree": "1638115757601e4d41d1dc3f3cb9045f5d3d6dd9",
      "parents": [
        "079f5fd58799a23aa5d60a5f85008a4663a33f2a",
        "54f869ed3c7910e6eb7bade924d41570e9a4cb14"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 09 13:02:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 13:02:12 2017 +0000"
      },
      "message": "Merge changes Ia26b07f0,Id3d2758c\n\n* changes:\n  Revert \"Revert \"Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\"\"\n  Revert \"Revert \"Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\"\"\n"
    },
    {
      "commit": "426b49c45d8088ff3114d3fbcec26db4e00c9324",
      "tree": "446ae3073d93e2771882885423c0e290f19d44fa",
      "parents": [
        "c02fe5f31d487765a8c59922c46d459ba6ebf939"
      ],
      "author": {
        "name": "Donghui Bai",
        "email": "donghui.bai@linaro.org",
        "time": "Tue Nov 08 14:55:38 2016 +0800"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Thu Mar 09 12:57:41 2017 +0000"
      },
      "message": "ARM(64): Improve the code generated for HSelect\n\nTest: m test-art-target-run-test-566-checker-codegen-select\nTest: m test-art-target-run-test-570-checker-select\nChange-Id: If0140892303490701782df9a818e6d8346bf3d6c\nSigned-off-by: Anton Kirilov \u003canton.kirilov@linaro.org\u003e\n"
    },
    {
      "commit": "c52f3034b06c03632e937aff07d46c2bdcadfef5",
      "tree": "031e4d1b2ca0961014e57e4987d80d7aa2c435b0",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Mar 02 13:45:45 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 08 10:55:17 2017 +0000"
      },
      "message": "Remove --include-patch-information option from dex2oat.\n\nBecause we no longer support running patchoat on npic oat files, which\nmeans the included patch information is unused .\n\nBug: 33192586\nTest: m test-art-host\n\nChange-Id: I9e100c4e47dc24d91cd74226c84025e961d30f67\n"
    },
    {
      "commit": "54f869ed3c7910e6eb7bade924d41570e9a4cb14",
      "tree": "668545b4100216adfa3db98635473d26306f9561",
      "parents": [
        "ba650a4d5a0a82c6c88d6546b6111013c2ee8072"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 13:54:11 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 14:05:15 2017 +0000"
      },
      "message": "Revert \"Revert \"Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\"\"\n\nThis reverts commit 47b3ab2fd83aaa530b7d2c62bfc024209b8b6923.\n\nIn compiler-generated code, when deciding whether to mark\na heap reference or not in a read barrier, after checking\nwhether the GC is currently marking, also check (in the\nslow path) whether the lock word of the reference\u0027s holder\nis gray, before actually marking the reference.\n\nThis change is only for ARM and ARM64, as it does not\nbenefit x86 nor x86-64.\n\nChange-Id: Ia26b07f0485e23589bfc0e65f83852f2795688c0\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 35780827\nBug: 29516974\n"
    },
    {
      "commit": "ba650a4d5a0a82c6c88d6546b6111013c2ee8072",
      "tree": "cc3046a30aab382cc9c346391ca7cc22f3bf11ad",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 13:52:32 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 13:57:15 2017 +0000"
      },
      "message": "Revert \"Revert \"Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\"\"\n\nThis reverts commit 35345a555bd7928582a7ffa6369b374b3ddc379d.\n\nIn compiler-generated code, when deciding whether to mark\na heap reference or not in a read barrier, check whether\nthe GC is currently marking, instead of checking the gray\nbit in the reference\u0027s holder\u0027s lock word.\n\nThis change is only for ARM and ARM64, as it does not\nbenefit x86 nor x86-64.\n\nChange-Id: Id3d2758c600115b2f07d345442cfa87edfc2792c\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 35780827\nBug: 29516974\n"
    },
    {
      "commit": "35345a555bd7928582a7ffa6369b374b3ddc379d",
      "tree": "ef5e6236203e04b59151b2e1b1529f9b389957b4",
      "parents": [
        "e25fc07d3d3b31fe46cb02a3ed0933c7af3999fd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:32:08 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:33:37 2017 +0000"
      },
      "message": "Revert \"Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\"\n\nThis reverts commit 1372c9f40df1e47bf775f1466bbb96f472b6b9ed.\n\nThis change (along with https://android-review.googlesource.com/#/c/342429/)\ncreates null pointer dereferences.\n\nBug: 35780827\nBug: 29516974\nChange-Id: I2a9c4d0ad8d2ab870c2e0ddbff32152933c77abe\n"
    },
    {
      "commit": "47b3ab2fd83aaa530b7d2c62bfc024209b8b6923",
      "tree": "d00923d1045ab66c6aa07ed5a42a69899580d210",
      "parents": [
        "27b1f9cbfc1409418eee4b0e22f29f033e10b64d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:31:35 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:31:35 2017 +0000"
      },
      "message": "Revert \"Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\"\n\nThis reverts commit 27b1f9cbfc1409418eee4b0e22f29f033e10b64d.\n\nThis change (along with https://android-review.googlesource.com/#/c/342428/)\ncreates null pointer dereferences.\n\nBug: 35780827\nBug: 29516974\nChange-Id: If731960a405f9b89528f3daaf235da57cabc5c11\n"
    },
    {
      "commit": "27b1f9cbfc1409418eee4b0e22f29f033e10b64d",
      "tree": "07e101c30d024d436086056768fc383d405cd8af",
      "parents": [
        "1372c9f40df1e47bf775f1466bbb96f472b6b9ed"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 17 16:56:34 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 23 14:27:50 2017 +0000"
      },
      "message": "Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\n\nIn compiler-generated code, when deciding whether to mark\na heap reference or not in a read barrier, after checking\nwhether the GC is currently marking, also check (in the\nslow path) whether the lock word of the reference\u0027s holder\nis gray, before actually marking the reference.\n\nThis change is only for ARM and ARM64, as it does not\nbenefit x86 nor x86-64.\n\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 29516974\nChange-Id: I60595a8f4987747faeaa359ad873e9758c1ded75\n"
    },
    {
      "commit": "1372c9f40df1e47bf775f1466bbb96f472b6b9ed",
      "tree": "d00923d1045ab66c6aa07ed5a42a69899580d210",
      "parents": [
        "6cc0250f1d1507957fc2fe1543179eab5a8b53f9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 13 11:47:39 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 23 13:50:11 2017 +0000"
      },
      "message": "Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\n\nIn compiler-generated code, when deciding whether to mark\na heap reference or not in a read barrier, check whether\nthe GC is currently marking, instead of checking the gray\nbit in the reference\u0027s holder\u0027s lock word.\n\nThis change is only for ARM and ARM64, as it does not\nbenefit x86 nor x86-64.\n\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 29516974\nChange-Id: Ia5d90286bb9f753f3bbcb3a6254eb166523a2ff5\n"
    },
    {
      "commit": "74234daabb28a4b9c804bf8bf908e7334bd4d400",
      "tree": "0b60cb00ab117c1a9a4b92983514962198b548bf",
      "parents": [
        "a7e9bfafeb64b1142433a41b05ddc263cadc61e3"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Jan 13 14:42:47 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Feb 17 14:59:27 2017 +0000"
      },
      "message": "ARM: Merge data-processing instructions and shifts/(un)signed extensions\n\nThis commit mirrors the work that has already been done for ARM64.\n\nTest: m test-art-target-run-test-551-checker-shifter-operand\nChange-Id: Iec8c1563b035f40f0e18dcffde28d91dc21922f8\n"
    },
    {
      "commit": "ffa5130425d582ecaa10b6f93bb5fa632fcd93af",
      "tree": "cbe451cded4fb1d404256fae6c74f6e057c7ea75",
      "parents": [
        "1c66504e0613bdf02dd15e15cd7e5167a4569d19",
        "d966ce7739bebbdce5481900a1b3220b31f3f3ad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Feb 10 14:15:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 10 14:15:34 2017 +0000"
      },
      "message": "Merge \"Use entrypoint switching on x86 \u0026 x86-64 for GC root read barriers.\""
    },
    {
      "commit": "d966ce7739bebbdce5481900a1b3220b31f3f3ad",
      "tree": "2dc80fcf35d1db73fa4b4a0fa9492d407a1b7a4b",
      "parents": [
        "8d4b1189639f0d8982bde681ccbdd7c03fe6ddbf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 09 16:20:14 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 09 16:45:52 2017 +0000"
      },
      "message": "Use entrypoint switching on x86 \u0026 x86-64 for GC root read barriers.\n\nFor consistency reason (with the ARM and ARM64 implementations),\ncheck the read barrier marking entrypoint\n(`Thread::Current()-\u003epReadBarrierMarkReg ## root.reg()`)\ninstead of `Thread::Current()-\u003eGetIsGcMarking()` to decide whether\nto mark a GC root.\n\nThis change should have no impact on the performance or the\nsize of the generated code.\n\nTest: m test-art-host\nBug: 32638713\nChange-Id: Ifd71312992fdfd6067447cccb7d95860f3771b57\n"
    },
    {
      "commit": "ea4c126a0165c5a4b997986e6e01c7f975642167",
      "tree": "0fdfd53472db379a1702846a89933ff1be7a4137",
      "parents": [
        "f8512f8515f7568984e1ca209929262ea88e4b59"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 06 19:59:33 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 08 21:24:01 2017 +0000"
      },
      "message": "Change type initialization entrypoints to kSaveEverything.\n\nAlso avoid the unnecessary read barriers for boot image\nclasses with kBssEntry or kJitTableAddress (the kBssEntry\nand JIT work missed the `read_barrier_option` flag), fix\nbit-rotten non-Baker read barriers on ARM and ARM64 and\nfix bit-rotten ARM64 relative patcher\u0027s IsAdrpPatch() used\nfor erratum 843419 workaround.\n\naosp_angler-userdebug with CC:\n  before:\n    arm boot*.oat: 35440420\n    arm64 boot*.oat: 43504952\n  after:\n    arm boot*.oat: 35222292 (-218128, -0.62%)\n    arm64 boot*.oat: 43389048 (-115904, -0.26%)\n\naosp_angler-userdebug without CC:\n  before:\n    arm boot*.oat: 31927412\n    arm64 boot*.oat: 39340512\n  after:\n    arm boot*.oat: 31708736 (-218676, -0.68%)\n    arm64 boot*.oat: 39211768 (-128744, -0.33%)\n\nTest: m test-art-host (non-CC, Baker CC, table lookup CC)\nTest: m test-art-target on Nexus 6P (non-CC, Baker CC, table lookup CC)\nTest: Nexus 6P boots (non-CC, Baker CC, table lookup CC)\nBug: 30627598\nChange-Id: Ida5bbce414844de9e4273e40334165d4494230d4\n"
    },
    {
      "commit": "fe076a51b0498c2771341cc09a77db15b437328f",
      "tree": "6f6e0c250e2ecc450567f90a7792f51f8d6b3384",
      "parents": [
        "8781fe65fe41d971173bb2d05afe0dc00b5c08ce",
        "83c8e27a292e6e002fb3b3def75cf6d8653378e8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 06 08:27:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 06 08:27:56 2017 +0000"
      },
      "message": "Merge \"Code refactoring around sharpening HLoadClass.\""
    },
    {
      "commit": "83c8e27a292e6e002fb3b3def75cf6d8653378e8",
      "tree": "f49ff5c239f318a0290a0d1e0a5b4d9a1ee1d2ba",
      "parents": [
        "357dcb73934356239292c46d6fbedba734da5e00"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 31 14:36:37 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 15:12:46 2017 +0000"
      },
      "message": "Code refactoring around sharpening HLoadClass.\n\nEven if the class is not accessible through the dex cache, we\ncan access it by other means (eg boot class, jit table). So rewrite\nstatic field access instruction builder to not bail out if a class\ncannot be accessed through the dex cache.\n\nbug:34966607\n\ntest: test-art-host test-art-target\nChange-Id: I88e4e09951a002b480eb8f271726b56f981291bd\n"
    },
    {
      "commit": "d09584456559f669f5999fb1ff32aa89ebf6ef4e",
      "tree": "3820a5e6505823f8b92f1cc5dcde11995c025e3b",
      "parents": [
        "588ef19c89c8299362c952037a926078740f2090"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 14:57:16 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 09:10:57 2017 +0000"
      },
      "message": "Align allocation entrypoints implementation between arm/arm64/x86/x64.\n\nx64:\n- Add art_quick_alloc_initialized_rosalloc\n\nx86:\n- Add art_quick_alloc_initialized_rosalloc\n- Add art_quick_alloc_initialized{_region}_tlab\n- Add art_quick_alloc_array_resolved{8,16,32,64}{_region}_tlab\n\narm32:\n- Add art_quick_alloc_initialized_rosalloc\n- Add art_quick_alloc_initialized{_region}_tlab\n- Add art_quick_alloc_array_resolved{8,16,32,64}{_region}_tlab\n\narm64:\n- Add art_quick_alloc_initialized_rosalloc\n- Add art_quick_alloc_initialized{_region}_tlab\n- Add art_quick_alloc_array_resolved{8,16,32,64}_tlab\n\nTest: test-art-target test-art-host\nbug: 30933338\n\nChange-Id: I0dd8667a2921dd0b3403bea5d05304ba5d40627f\n"
    },
    {
      "commit": "dc5912772707f5b91c3475bbb620c57afb24bb97",
      "tree": "3e04212c1a46e197c9e512e249fdccaae51876da",
      "parents": [
        "95cf7e42526d4da84086f197dd7d670e407938e0",
        "5e8d5f01b0fe87a6c649bd3a9f1534228b93423d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 18:18:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 18:18:45 2017 +0000"
      },
      "message": "Merge \"Fix some typos in ART.\""
    },
    {
      "commit": "c51842b8dd2ad57a1b05f31ab20ad01123443c50",
      "tree": "1f252e84d65dda9e301e2db3760adcbddb55bed6",
      "parents": [
        "b0dde4397fa5b0756312b46bd18477a2c1f6a7da",
        "d8c052ac0aa3382c4807add33afa32580ffeecbb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 16:48:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 16:48:51 2017 +0000"
      },
      "message": "Merge \"ART: Reference.getReferent intrinsic for arm and arm64\""
    },
    {
      "commit": "5e8d5f01b0fe87a6c649bd3a9f1534228b93423d",
      "tree": "a1441acc0021d170f412542ae2a1ae62794e7846",
      "parents": [
        "b0dde4397fa5b0756312b46bd18477a2c1f6a7da"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 18 18:03:43 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 23 15:50:01 2017 +0000"
      },
      "message": "Fix some typos in ART.\n\nTest: m build-art-host\nTest: m cpplint-art\nChange-Id: Ifc6ce3d0d645c4a8dca72dd483fc03fc05077130\n"
    },
    {
      "commit": "d8c052ac0aa3382c4807add33afa32580ffeecbb",
      "tree": "97679692824fee4b12b03b4d71cb0763a8233e70",
      "parents": [
        "4cd515521828b1f9ce0d5e2f545cb3376a94e9f3"
      ],
      "author": {
        "name": "TatWai Chong",
        "email": "tatwai.chong@linaro.org",
        "time": "Wed Nov 02 16:12:48 2016 +0800"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 23 14:20:35 2017 +0000"
      },
      "message": "ART: Reference.getReferent intrinsic for arm and arm64\n\nTest: m test-art-host\nTest: m test-art-target\nTest: export ART_HEAP_POISONING\u003dtrue; m test-art-host\nTest: export ART_HEAP_POISONING\u003dtrue; m test-art-target\nBug: 32535355\nChange-Id: Ie63317689dd9e03a24e701c30411f8014970173a\n"
    },
    {
      "commit": "e807ff725159dabab3a3028bbb76f83ebcfa40de",
      "tree": "edf6929cca3b17e97621505aae9051e982274446",
      "parents": [
        "a90b3dd3f22ce0674970365a5903571276a8fc01"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 23 09:03:12 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 23 09:06:48 2017 +0000"
      },
      "message": "Allow multiple HArmDexCacheArrayBase.\n\nSo that even graphs with irreducible loops can use it\nand avoid loading methods through KDexCacheViaMethod.\n\nTest: test-art-target\nChange-Id: I913eece1c134ebe9ea989064e477f694b8895d8f\n"
    },
    {
      "commit": "a2f526f889be06f96ea59624c9dfb1223b3839f3",
      "tree": "769f517e6664de0e89abeadf07a39d5410fcee42",
      "parents": [
        "64e50021845b1ad9d8851596e8aaddf18be217c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 19 14:48:48 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 20 15:47:06 2017 -0800"
      },
      "message": "Compressed native PC for stack maps\n\nCompress native PC based on instruction alignment. This reduces the\nsize of stack maps, boot.oat is 0.4% smaller for arm64.\n\nTest: test-art-host, test-art-target, N6P booting\n\nChange-Id: I2b70eecabda88b06fa80a85688fd992070d54278\n"
    },
    {
      "commit": "e761bccf9f0d884cc4d4ec104568cef968296492",
      "tree": "05a2d20d61c0e91270df2747f0c242433b5ce62b",
      "parents": [
        "b0355130e38034db6b904783a00f74a3524e1881"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 08:59:37 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 09:32:17 2017 +0000"
      },
      "message": "Revert \"Revert \"Load the array class in the compiler for allocations.\"\"\n\nThis reverts commit fee255039e30c1c3dfc70c426c3d176221c3cdf9.\n\nChange-Id: I02b45f9a659d872feeb35df40b42c1be9878413a\n"
    },
    {
      "commit": "fee255039e30c1c3dfc70c426c3d176221c3cdf9",
      "tree": "8207b72cc76513fed9f7b3c01aaa32cd54a87f1c",
      "parents": [
        "cc99df230feb46ba717252f002d0cc2da6828421"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 19 02:11:15 2017 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 19 02:11:15 2017 +0000"
      },
      "message": "Revert \"Load the array class in the compiler for allocations.\"\n\nlibcore test fails.\n\nThis reverts commit cc99df230feb46ba717252f002d0cc2da6828421.\n\nChange-Id: I5bac595acd2b240886062e8c1f11f9095ff6a9ed\n"
    },
    {
      "commit": "cc99df230feb46ba717252f002d0cc2da6828421",
      "tree": "73ac045673e150fa367a8da4d46874f28e928491",
      "parents": [
        "4507fdcb70bd570d5f3968061bf991f0a1233a93"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 17 23:00:24 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 15:16:32 2017 +0000"
      },
      "message": "Load the array class in the compiler for allocations.\n\nRemoving one other dependency for needing to pass\nthe current method, and having dex_cache_resolved_types_\nin ArtMethod.\n\noat file increase:\n- x64: 0.25%\n- arm32: 0.30%\n- x86: 0.28%\n\ntest: test-art-host, test-art-target\nChange-Id: Ibca4fa00d3e31954db2ccb1f65a584b8c67cb230\n"
    },
    {
      "commit": "5247c08fb186a5a2ac02226827cf6b994f41a681",
      "tree": "8b1305f9fb918024302382b8e8aa43962098e9fa",
      "parents": [
        "0d478f289f0e33f19693d135f1d562b57427ed32"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 13 14:17:29 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 16 23:42:09 2017 +0000"
      },
      "message": "Put the resolved class in HLoadClass.\n\nTo avoid repeated lookups in sharpening/rtp/inlining.\n\nTest: test-art-host test-art-target\nChange-Id: I08d0da36a4bb061cdaa490ea2af3a3217a875bbe\n"
    },
    {
      "commit": "1998cd02603197f2acdc0734397a6d48b2f59b80",
      "tree": "aa639c7ec96f71d7aaf5d0c865a8a133dbc457c3",
      "parents": [
        "6bec91c7d4670905cd67440991ec76fd54d0f000"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 13 13:02:58 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 16 13:39:24 2017 +0000"
      },
      "message": "Implement HLoadClass/kBssEntry for boot image.\n\nTest: m test-art-host\nTest: m test-art-host with CC\nTest: m test-art-target on Nexus 9\nTest: Nexus 9 boots.\nTest: Build aosp_mips64-eng\nBug: 30627598\nChange-Id: I168f24dedd5fb54a1e4215ecafb947ffb0dc3280\n"
    },
    {
      "commit": "6bec91c7d4670905cd67440991ec76fd54d0f000",
      "tree": "05f4ba288e629270773c65b34b71be7bae5e92ff",
      "parents": [
        "4155998a2f5c7a252a6611e3926943e931ea280a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 09 15:03:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 16 12:09:53 2017 +0000"
      },
      "message": "Store resolved types for AOT code in .bss.\n\nTest: m test-art-host\nTest: m test-art-target on Nexus 9.\nTest: Nexus 9 boots.\nTest: Build aosp_mips64-eng.\nBug: 30627598\nBug: 34193123\nChange-Id: I8ec60a98eb488cb46ae3ea56341f5709dad4f623\n"
    },
    {
      "commit": "4155998a2f5c7a252a6611e3926943e931ea280a",
      "tree": "3495370417d54a9bf7d0acedeefe89bd511062e0",
      "parents": [
        "48886c2ee655a16224870fee52dc8721a52babcf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 06 14:04:23 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 16 12:09:53 2017 +0000"
      },
      "message": "Make runtime call on main for HLoadClass/kDexCacheViaMethod.\n\nRemove dependency of the compiled code on types dex cache\narray in preparation for changing to a hash-based array.\n\nTest: m test-art-host\nTest: m test-art-target on Nexus 9\nBug: 30627598\nChange-Id: I3c426ed762c12eb9eb4bb61ea9a23a0659abf0a2\n"
    },
    {
      "commit": "48886c2ee655a16224870fee52dc8721a52babcf",
      "tree": "debc8b7d9c99a83e2c056c47a8e0718be00c12c3",
      "parents": [
        "58207cfd229d9f0b39fc634cff489dac83e1c010"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 06 11:45:47 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 16 12:09:53 2017 +0000"
      },
      "message": "Remove HLoadClass::LoadKind::kDexCachePcRelative.\n\nTest: m test-art-host\nTest: m test-art-target-run-test-552-checker-sharpening\nBug: 30627598\nChange-Id: Ic809b0f3a8ed0bd4dc7ab67aa64866f9cdff9bdb\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": "c8144cdad955b77988a48777cfbdc6fd2e8c1916",
      "tree": "354e00610ec25279a8c4b77e8b685e380815813f",
      "parents": [
        "d1a277954284c4dd4b5b14fd4e58f1854daed848",
        "f7aaacd97881c6924b8212c7f8fe4a4c8721ef53"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 12 06:19:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 12 06:19:23 2017 +0000"
      },
      "message": "Merge \"Revert \"Make object allocation entrypoints only take a class.\"\""
    },
    {
      "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": "dcf52765ab5886abdd85a4436fa0358b2a31341d",
      "tree": "b68ee975792a5bf488ed93cfbe09a37f80008288",
      "parents": [
        "a28ddf5140cd1f4a2ae93dbf8be2f200b1552003",
        "0fb5af1c8287b1ec85c55c306a1c43820c38a337"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 19:18:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 19:18:51 2017 +0000"
      },
      "message": "Merge \"Revert \"ART: Compiler support for invoke-polymorphic.\"\""
    },
    {
      "commit": "0fb5af1c8287b1ec85c55c306a1c43820c38a337",
      "tree": "66239e7f745fae54e1630e91fb44a859bff615d6",
      "parents": [
        "02e3092f8d98f339588e48691db77f227b48ac1e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 18:58:15 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 19:17:33 2017 +0000"
      },
      "message": "Revert \"ART: Compiler support for invoke-polymorphic.\"\n\nThis reverts commit 02e3092f8d98f339588e48691db77f227b48ac1e.\n\nReasons for revert:\n\n- Breaks MIPS/MIPS64 build.\n- Fails under GCStress test on x64.\n- Different x64 build configuration doesn\u0027t like relocation.\n\nChange-Id: I512555b38165d05f8a07e8aed528f00302061001\n"
    },
    {
      "commit": "79f9928fc9e0a88430f3329069bfb2f9a0d37f0c",
      "tree": "e3142e4829c808c3df1059f3b05c0b3a37193ce9",
      "parents": [
        "716eb25353390f699778a79d69006a5b8d8289c2",
        "02e3092f8d98f339588e48691db77f227b48ac1e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 11 18:08:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 18:08:04 2017 +0000"
      },
      "message": "Merge \"ART: Compiler support for invoke-polymorphic.\""
    },
    {
      "commit": "02e3092f8d98f339588e48691db77f227b48ac1e",
      "tree": "127dd23346206b0547b7c6453a776253252b3c6e",
      "parents": [
        "bc7d0deda4549f314e68ee3e0e6afd68c4a8fd06"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Dec 01 10:33:51 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 16:26:43 2017 +0000"
      },
      "message": "ART: Compiler support for invoke-polymorphic.\n\nAdds basic support to invoke method handles in compiled code.\n\nEnables method verification for methods containing invoke-polymorphic.\n\nAdds k45cc/k45rc output to Instruction::DumpString() which\nwas found to be missing when enabling verification.\n\nInclude stack traces in test 957-methodhandle-transforms for\nfailures so they can be easily identified.\n\nBug: 30550796,33191393\nTest: art/test/run-test 953\nTest: m test-art-run-test\nChange-Id: Ic9a96ea24906087597d96ad8159a5bc349d06950\n"
    },
    {
      "commit": "db47a144d816e0976c5b4c00461b80b07ce97c60",
      "tree": "628ffda55e75f18889161b684ac2b4e578d562b7",
      "parents": [
        "f62455a422baf040d901db964bdd3c6e18185c13",
        "f0acfe7a812a332122011832074142718c278dae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 11 14:05:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 14:05:09 2017 +0000"
      },
      "message": "Merge \"Keep resolved String in HLoadString.\""
    },
    {
      "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": "f0acfe7a812a332122011832074142718c278dae",
      "tree": "49c4fc481cebd03323aaf0109066859165508303",
      "parents": [
        "91db41f315f6c2366b7098c531224bee01170364"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 09 20:54:52 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 10 21:26:23 2017 +0000"
      },
      "message": "Keep resolved String in HLoadString.\n\nFor the following reasons:\n- Avoids needing to do a lookup again in CodeGenerator::EmitJitRoots.\n- Fixes races where we the string was GC\u0027ed before CodeGenerator::EmitJitRoots.\n- Makes it possible to do GVN on the same string but defined in different\n  dex files.\n\nTest: test-art-host, test-art-target\nChange-Id: If2b5d3079f7555427b1b96ab04546b3373fcf921\n"
    },
    {
      "commit": "c1a42cf3873be202c8c0ca3c4e67500b470ab075",
      "tree": "f2bffbd14e1f9d5429dd8514d19be4fa6dfa392f",
      "parents": [
        "06ce6d4359ed897f1d1b39be4e748f0c4f3ca2ff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Dec 18 15:52:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 13:29:45 2016 +0000"
      },
      "message": "Remove soon to be obsolete call kinds for direct calls.\n\nAnd remove CompilerDriver::GetCodeAndMethodForDirectCall in\npreparation of removing non-PIC prebuild and non-PIC on-device\nboot image compilation.\n\nTest: test-art-host test-art-target\nbug:33192586\nChange-Id: Ic48e3e8b9d7605dd0e66f31d458a182198ba9578\n"
    },
    {
      "commit": "0f0829ba15e4ed54472fb6ebac3a19b101d03db3",
      "tree": "d968014b299db7fd4eaf23dde82cad3572d8147a",
      "parents": [
        "1e35a69a44bbf3999ec1829e501d7305bd9fc9d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 13 13:50:14 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 13 13:50:14 2016 +0000"
      },
      "message": "Remove obsolete DeduplicateDexCacheAddressLiteral().\n\nTest: Rely on TreeHugger\nBug: 30627598\nChange-Id: Ia3c7a1d528f62b730d7ac1cc7b67f21d9ff06c9e\n"
    },
    {
      "commit": "22384aeab988df7fa5ccdc48a668589c5f602c39",
      "tree": "daca06adfc92c93017618c3729af54ed40214ba4",
      "parents": [
        "0ee6447c63e354131dec78743ccabcbc964129e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 22:33:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 23:06:38 2016 +0000"
      },
      "message": "Revert \"Revert \"Add kJitTableAddress for HLoadClass.\"\"\n\nThis reverts commit d2d5262c8370309e1f2a009f00aafc24f1cf00a0.\n\nChange-Id: I6149d5c7d5df0b0fc5cb646a802a2eea8d01ac08\n"
    },
    {
      "commit": "d2d5262c8370309e1f2a009f00aafc24f1cf00a0",
      "tree": "15b542ac079f30043cd3654cf5d3c40ae3ea34d0",
      "parents": [
        "5b12f7973636bfea29da3956a9baa7a6bbe2b666"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 16:28:54 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 16:28:54 2016 +0000"
      },
      "message": "Revert \"Add kJitTableAddress for HLoadClass.\"\n\nOne test failure after merge.\n\nThis reverts commit 5b12f7973636bfea29da3956a9baa7a6bbe2b666.\n\nChange-Id: I120c49e53274471fc1c82a10d52e99c83f5f85cc\n"
    },
    {
      "commit": "5b12f7973636bfea29da3956a9baa7a6bbe2b666",
      "tree": "a2cd41c1d3c09abc594a76af11b7bebc302a2870",
      "parents": [
        "0dd27eb2b51d030866c25dbf8e7bb737eb35a888"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 09 11:26:35 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 11:50:24 2016 +0000"
      },
      "message": "Add kJitTableAddress for HLoadClass.\n\nThis new kind loads classes from the root table associated with\nJIT compiled code.\n\nAlso remove kDexCacheAddress, which is replaced by kJitTableAddress.\n\ntest: ART_TEST_JIT\u003dtrue test-art-host-jit test-art-target-jit\nChange-Id: Ia23029688d1a60c178bf2ffa7463927c5d5de4d0\n"
    },
    {
      "commit": "063fc772b5b8aed7d769cd7cccb6ddc7619326ee",
      "tree": "bc165781989087a998721991504e589a7d5b0926",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 02 11:02:54 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 11:15:47 2016 -0800"
      },
      "message": "Class Hierarchy Analysis (CHA)\n\nThe class linker now tracks whether a method has a single implementation\nand if so, the JIT compiler will try to devirtualize a virtual call for\nthe method into a direct call. If the single-implementation assumption\nis violated due to additional class linking, compiled code that makes the\nassumption is invalidated. Deoptimization is triggered for compiled code\nlive on stack. Instead of patching return pc\u0027s on stack, a CHA guard is\nadded which checks a hidden should_deoptimize flag for deoptimization.\nThis approach limits the number of deoptimization points.\n\nThis CL does not devirtualize abstract/interface method invocation.\n\nSlides on CHA:\nhttps://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp\u003dsharing\n\nChange-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4\nTest: ART_TEST_JIT\u003dtrue m test-art-host/target-run-test test-art-host-gtest\n"
    },
    {
      "commit": "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5",
      "tree": "0dec75200282ae5e49785395e97bd4e6459f1c09",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 07:38:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 11:11:46 2016 -0800"
      },
      "message": "ART: Add dex::StringIndex\n\nAdd abstraction for uint32_t string index.\n\nTest: m test-art-host\nChange-Id: I917c2881702fe3df112c713f06980f2278ced7ed\n"
    },
    {
      "commit": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "dac7ad17c78387d15d7aefae0f852dddf5f37e34",
      "tree": "603b3ca74ba9144d217497417314fe863e2201ef",
      "parents": [
        "af524438b8a76264a23ec2d748e11eeded02abc7",
        "132d8363bf8cb043d910836672192ec8c36649b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:14:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 10:14:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\""
    },
    {
      "commit": "132d8363bf8cb043d910836672192ec8c36649b6",
      "tree": "42ee8b08f0323e9762675333b50a4c218ecdefc7",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 09:19:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 14:31:30 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\n\nTest: 626-set-resolved-string, test-art-host, test-art-target\nTest: run-libcore-tests.sh\nTest: phone boots and runs\n\nThis reverts commit 3395fbc20bcd20948bec8958db91b304c17cacd8.\n\nChange-Id: I104b73d093e3eb6a271d564cfdb9ab09c1c8cf24\n"
    },
    {
      "commit": "6beced4c017826f7c449f12fac7fa42403657f2b",
      "tree": "f53614eeeaa92be9a7398e262d9440f59e3384a5",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 15:51:31 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 10:41:40 2016 -0800"
      },
      "message": "Change iftable to never be null\n\nSimplifies code generation by removing a null check. The null case\nis rare.\n\nRitzperf code size: 13107624 -\u003e 13095336\n\nAlso addressed comments from previous CL.\n\nBug: 32577579\n\nTest: test-art-host, run ritzperf both with CC\n\nChange-Id: I2b31e800867112869d7f0643e16c08826296979e\n"
    },
    {
      "commit": "9fd8c60cdff7b28a89bb97fd90ae9d0f37cf8f8b",
      "tree": "630b6f23441a26e4b5d9434900993a710635c9e9",
      "parents": [
        "26c8f54be31ccf99540906746b17fc8bba1bab9a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 14 14:38:53 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 13:02:24 2016 -0800"
      },
      "message": "Pass object instead of class to instanceof entrypoint\n\nReduces code size. Also avoid read barrier for kArrayCheck case.\n\nBug: 32577579\n\nTest: test-art-host, test-art-target CC\n\nChange-Id: Ia890f656fe166b2d39c522b63a8a6469404134ae\n"
    },
    {
      "commit": "afbcdafde4d2c1de293c3ba1da22f579df200b3b",
      "tree": "6d75c7f26b7b358e0e8ca869ae6d206f7bf0294a",
      "parents": [
        "81cae78d1853893ff9c3ecea4b5100002a538eb7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 14 10:50:29 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 14 11:35:27 2016 -0800"
      },
      "message": "Clean up interface check cast\n\nChanged arm, arm64 to use less labels and removed forward branch\nin the success case.\n\nCleaned up X86, X86_64 to remove the is_null label.\n\nBug: 12687968\nBug: 32577579\n\nTest: test-art-host, test-art-target CC\nChange-Id: Iba426dff548b2ef42198fad13efeb075f7c724a7\n"
    },
    {
      "commit": "3395fbc20bcd20948bec8958db91b304c17cacd8",
      "tree": "e0d00b412961e2aaa0dff91317a9f4168189e5fb",
      "parents": [
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT root tables.\"\"\"\n\nlibcore failures:\ndalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string !\u003d nullptr\n\nThis reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.\n\nChange-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d\n"
    },
    {
      "commit": "75afcdd3503a8a8518e5b23d21b6e73306ce39ce",
      "tree": "b49afc4772fa72319475f96ed66d744bb03e803c",
      "parents": [
        "ee48b0f11df812d98de5c989e1f6d95a21515564"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 10:38:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 13:18:24 2016 +0000"
      },
      "message": "Revert \"Revert \"JIT root tables.\"\"\n\nAlso  contains Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nThis reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nTest: ART_USE_READ_BARRIER\u003dtrue/false test-art-host test-art-target\n\nChange-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3\n"
    },
    {
      "commit": "1f01a46fdfc5fdda9268cf5d1ce48d6baf8d619d",
      "tree": "69c08594e2f3f8ef3f3496fd839c407b598d564a",
      "parents": [
        "48dfb4a7f113b3ada0c7e55f0503e692180decc5",
        "fe814e89965ddf9a8b603863bd28259f8dd7be35"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 11 00:58:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 00:58:23 2016 +0000"
      },
      "message": "Merge \"Use entrypoint switching to reduce code size of GcRoot read barrier\""
    },
    {
      "commit": "fe814e89965ddf9a8b603863bd28259f8dd7be35",
      "tree": "32ecc282f176d0e2a98f41f6e4b116d26cf58bee",
      "parents": [
        "977919fbcbfbf0c1c3fa97e51490bc678da646d2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 14:32:49 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 14:41:28 2016 -0800"
      },
      "message": "Use entrypoint switching to reduce code size of GcRoot read barrier\n\nSet the read barrier mark register entrypoints to null when the GC\nis not marking. The compiler uses this to avoid needing to load the\nis_gc_marking boolean.\n\nCode size results on ritzperf CC:\narm32: 13439400 -\u003e 13242792 (-1.5%)\narm64: 16380544 -\u003e 16208512 (-1.05%)\n\nImplemented for arm32 and arm64. TODO: Consider implementing on x86.\n\nBug: 32638713\nBug: 29516974\n\nTest: test-art-host + run ritzperf\nChange-Id: I527ca5dc4cd43950ba43b872d0ac81e1eb5791eb\n"
    },
    {
      "commit": "3af00dc3918dfaacd51fb0ef604de51dd6dc9af4",
      "tree": "ec07882ae02d98bd9841646ce9e8bb1349e9c751",
      "parents": [
        "977919fbcbfbf0c1c3fa97e51490bc678da646d2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 11:25:57 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 12:45:56 2016 -0800"
      },
      "message": "Use enum for read barrier options in compiler\n\nEnums are just phenomenal. Also fixed a double load error in x86\ninterface check cast fast path.\n\nTest: test-art-host\n\nChange-Id: Iea403ce579145b6a294073f3900ad6921c1a0d53\n"
    },
    {
      "commit": "977919fbcbfbf0c1c3fa97e51490bc678da646d2",
      "tree": "3e462b1ea5887345ed025b030b0c0a4b71003524",
      "parents": [
        "ee59d46595bb860fea26122f47f8797d2d0fe5f4",
        "aa474eb597056d21c0b21d353b9b6aa460351d0f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 18:05:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 18:05:50 2016 +0000"
      },
      "message": "Merge \"Avoid read barriers for inlined check cast\""
    },
    {
      "commit": "16593ed1d3914308052f98542bb9bf38ed588d53",
      "tree": "783e1081ec6828731ef88df679193d0c4c2f5919",
      "parents": [
        "af0cac6ed7221303c8bd8a77f6c41f4af8045d60",
        "fdaf0f45510374d3a122fdc85d68793e2431175e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 10 13:58:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 13:58:34 2016 +0000"
      },
      "message": "Merge \"Change string compression encoding.\""
    },
    {
      "commit": "aa474eb597056d21c0b21d353b9b6aa460351d0f",
      "tree": "738ba965a552ac0e4814cb1131ef0dd96ae14142",
      "parents": [
        "334b5c3d0d5d84242b4528241c759789e532ce08"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 15:18:27 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 15:59:33 2016 -0800"
      },
      "message": "Avoid read barriers for inlined check cast\n\nAvoiding read barriers improves speed and reduces code size.\n\nDoing this can never result in false positives, only false negatives.\nThese false negatives are handled correcly by rechecking in the\nentrypoint.\n\nRitzperf code size for CC:\narm32: 13439400-\u003e13300136 (-1.04%)\narm64: 16405120-\u003e16253568 (-0.92%)\n\nPerf: TODO\n\nBug: 29516974\nBug: 12687968\n\nTest: test-art-host, run ritzperf both with CC\n\nChange-Id: Ie024e0b1e8ee415781fb73e8029e87e8a5318f86\n"
    },
    {
      "commit": "334b5c3d0d5d84242b4528241c759789e532ce08",
      "tree": "4925b11b74297e34c35eb17bb2f08b161b8893c7",
      "parents": [
        "3b3daf35d3f3053ac5f645cc0b0e5527012c44d7",
        "5c44c1bb131e609d9aba6f97f933567bf77cb8ed"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 23:16:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 23:16:16 2016 +0000"
      },
      "message": "Merge \"Add interface check cast fast path to arm, arm64, x86\""
    },
    {
      "commit": "5c44c1bb131e609d9aba6f97f933567bf77cb8ed",
      "tree": "46792f774d0c4e0e096510cb1927768cc4b92a46",
      "parents": [
        "b4e4c279a0d96c5c9bd6d038d97c3c9992ff8d09"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 04 18:13:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 10:31:16 2016 -0800"
      },
      "message": "Add interface check cast fast path to arm, arm64, x86\n\nBug: 12687968\nBug: 32577579\n\nTest: test-art-host, test-art-target CC\n\nChange-Id: Ia57099d499fa704803cc5f0135f0f53fefe39826\n"
    },
    {
      "commit": "20c56a8cded87092d40097323fcf9eaf50f64e4b",
      "tree": "1dd41fe4afd736aa0cfb8d6ef8ed4835a4dbe4af",
      "parents": [
        "2e7f085990423a706137c1d42673226ee7a7194f",
        "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "message": "Merge \"Revert \"JIT root tables.\"\""
    },
    {
      "commit": "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035",
      "tree": "1220262d0ed22d91777c68a8a568348cddf820cb",
      "parents": [
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "message": "Revert \"JIT root tables.\"\n\nMay be the offender for jit-gcstress failure of 902.\n\nThis reverts commit ac3ebc3150760425ed00abd56da48f9a6e0666bc.\n\nChange-Id: I9ea6c9236fd1729fed7d1868dd8a111172932308\n"
    },
    {
      "commit": "2e7f085990423a706137c1d42673226ee7a7194f",
      "tree": "111034c140ccc9c458a353a4a7cc5d85c4a3b98b",
      "parents": [
        "b4e4c279a0d96c5c9bd6d038d97c3c9992ff8d09",
        "07c919feccdf47f997842a131a802aa6b891e34a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 17:30:00 2016 +0000"
      },
      "message": "Merge \"Revert \"Support kJitTableAddress in x86/arm/arm64.\"\""
    },
    {
      "commit": "07c919feccdf47f997842a131a802aa6b891e34a",
      "tree": "56d9bb3097c51d5efbf67cd7516b0bc3c8e16616",
      "parents": [
        "997d1217830c0a18b70faeabd53c04700a87d7d9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:29:03 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:29:03 2016 +0000"
      },
      "message": "Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nRevert this in order to revert https://android-review.googlesource.com/#/c/285781/\n\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nChange-Id: I1888fba1c6f712cae4aec4ea4719b74a46da156c\n"
    },
    {
      "commit": "11bbc7fd5b4ed64d13c5d21ae9c8b686cf24bcbb",
      "tree": "987b3b2cbac0d69bb96356fb2a9994727aebf47a",
      "parents": [
        "2badb9a4c2ef794344f9434e1e6aed865646fcaf",
        "997d1217830c0a18b70faeabd53c04700a87d7d9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 16:25:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 16:25:24 2016 +0000"
      },
      "message": "Merge \"Support kJitTableAddress in x86/arm/arm64.\""
    },
    {
      "commit": "997d1217830c0a18b70faeabd53c04700a87d7d9",
      "tree": "1f892df0eb21ebd0139cd62aa9f46a7485f375da",
      "parents": [
        "0864c98b10cb8ca306671cabaa9be2a4068a2711"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 10:36:29 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 14:43:27 2016 +0000"
      },
      "message": "Support kJitTableAddress in x86/arm/arm64.\n\ntest: test-art-host test-art-target, angler boots and runs.\nChange-Id: I3654ae2809d4d759db76ee1ada1c17f3a9c3b392\n"
    },
    {
      "commit": "54d6a207341ad45cb5eceed71a344073ed6d4e31",
      "tree": "d24fc641ca9ad2b1732a40f0989e3683cc0a5028",
      "parents": [
        "2a2f713717ace8a026cfe76c91165a5ed0d80182"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 12:46:38 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 12:46:38 2016 +0000"
      },
      "message": "Fix 552-checker-sharpening for PIC test.\n\nAnd remove obsolete HLoadString::LoadKind::kDexCacheAddress.\n\nTest: m ART_TEST_PIC_TEST\u003dtrue test-art-host\nChange-Id: I3e7a1a98c2c7eba5ea10954d7efcf743a807c300\n"
    },
    {
      "commit": "fdaf0f45510374d3a122fdc85d68793e2431175e",
      "tree": "3315c82410fd42612bb501bed150df454dde0dde",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 19:29:53 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 11:08:31 2016 +0000"
      },
      "message": "Change string compression encoding.\n\nEncode the string compression flag as the least significant\nbit of the \"count\" field, with 0 meaning compressed and 1\nmeaning uncompressed.\n\nThe main vdex file is a tiny bit larger (+28B for prebuilt\nboot images, +32 for on-device built images) and the oat\nfile sizes change. Measured on Nexus 9, AOSP ToT, these\nchanges are insignificant when string compression is\ndisabled (-200B for the 32-bit boot*.oat for prebuilt boot\nimage, -4KiB when built on the device attributable to\nrounding, -16B for 64-bit boot*.oat for prebuilt boot image,\nno change when built on device) but with string compression\nenabled we get significant differences:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: -28KiB\n    - 64-bit boot*.oat: -24KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: -32KiB\n    - 64-bit boot.oat: -28KiB\nThe boot image oat file overhead for string compression:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: before: ~80KiB after: ~52KiB\n    - 64-bit boot*.oat: before: ~116KiB after: ~92KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: before: 92KiB after: 60KiB\n    - 64-bit boot.oat: before: 116KiB after: 92KiB\n\nThe differences in the SplitStringBenchmark seem to be lost\nin the noise.\n\nTest: Run ART test suite on host and Nexus 9 with Optimizing.\nTest: Run ART test suite on host and Nexus 9 with interpreter.\nTest: All of the above with string compression enabled.\nBug: 31040547\n\nChange-Id: I7570c2b700f1a31004a2d3c18b1cc30046d35a74\n"
    },
    {
      "commit": "0864c98b10cb8ca306671cabaa9be2a4068a2711",
      "tree": "56d9bb3097c51d5efbf67cd7516b0bc3c8e16616",
      "parents": [
        "4c45ffaf6329d40e3249894cfb078d3d274ddfd5",
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "message": "Merge \"JIT root tables.\""
    },
    {
      "commit": "b99f4d6463e7cb5654af3893ed7b3113665df658",
      "tree": "1bacc6a2bd01426c921e2f83f39bb63f9d9d8048",
      "parents": [
        "67381d6298edf18760b0c9b3d16572dc3894e551"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 07 16:17:26 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 08 12:46:59 2016 -0800"
      },
      "message": "Change check cast entrypoint to check instance of\n\nReduces code size since we do not need to reload class before\ncalling slow path.\n\nTODO: Delete read barriers in the check cast code since the slow\npath will retry with the proper read barriers if the check fails.\n\nBug: 12687968\nBug: 29516974\n\nTest: test-art-host + test-art-target with CC\n\nChange-Id: Ia4eb9bbe3fe2d2016e44523cf0451210828d7b88\n"
    },
    {
      "commit": "ac3ebc3150760425ed00abd56da48f9a6e0666bc",
      "tree": "3c5c923bb00a898e035c0e7c4b8a6a684a578419",
      "parents": [
        "76ad2405b40547e0ab4fc401fb8303189ff783eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:13:50 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 08 17:21:30 2016 +0000"
      },
      "message": "JIT root tables.\n\nImplement root tables for the JIT. Each JIT compiled method\ngets a table allocated before the stack maps.\n\nThe table gets visited through Runtime::SweepSystemWeaks.\n\nImplement String roots for x86_64 as an example.\n\nTest: test-art-host test-art-target\n\nChange-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2\n"
    },
    {
      "commit": "19c5419d21376dd69404736b998fbbb9da54af56",
      "tree": "1e15b39f7c6662b2939bbaa7f34560fcea72e7b4",
      "parents": [
        "c46e708aa0bd7a007f0de8db1cad8ef49166ca10"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 04 13:44:09 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 04 16:43:41 2016 +0000"
      },
      "message": "Revert \"Revert \"Enable IntermediateAddress for primitive arrays with read barriers.\"\"\n\nThis reverts commit 4a3aa578eff94eb10450fae1772deb7cb8ddc6a6.\n\nThe failing assertion (see b/30762467):\n\n08-09 11:32:46.767  1654  1656 F dex2oatd: art/compiler/optimizing/register_allocation_resolver.cc:325] Check failed: interval-\u003eGetDefinedBy()-\u003eIsActualObject() IntermediateAddress@InstanceFieldGet\n\nthat motivated the initial revert has been removed by a\nprevious CL (commit\n70e97462116a47ef2e582ea29a037847debcc029,\nhttps://android-review.googlesource.com/#/c/254920/).\n\nTest: ART host and target (ARM, ARM64) tests with `ART_USE_READ_BARRIER\u003dtrue`.\nBug: 26601270\nBug: 12687968\nChange-Id: I09cae0c6c38ca403924153e9f0eb0cc3ff4540e7\n"
    },
    {
      "commit": "12b58b23de974232e991c650405f929f8b0dcc9f",
      "tree": "bc08011e3b9f4c132fc605dc54d1d5f50c932a29",
      "parents": [
        "b0b2080b4cea8365052d1be973e927f8ee85f609"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Nov 01 11:55:29 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 02 16:31:04 2016 -0700"
      },
      "message": "Clean up the runtime read barrier and fix fake address dependency.\n\n- Rename GetReadBarrierPointer to GetReadBarrierState.\n- Change its return type to uint32_t.\n- Fix the runtime fake address dependency for arm/arm64 using inline\n  asm.\n- Drop ReadBarrier::black_ptr_ and some brooks code.\n\nBug: 12687968\nTest: test-art with CC, Ritz EAAC, libartd boot on N9.\nChange-Id: I595970db825db5be2e98ee1fcbd7696d5501af55\n"
    },
    {
      "commit": "5edd9510b5f39e2f6d758954ae2ac78e17f21735",
      "tree": "41233bf579429e3cc057eefdbd8ad35e091d8055",
      "parents": [
        "270b6aeb11d973dc1b339ccf892468e0ad3989e3",
        "00468f3b4b4741be407169a4f21054ebdcccb2b1"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 28 14:15:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 28 14:15:10 2016 +0000"
      },
      "message": "Merge \"Remove default argument values in GenerateGcRootFieldLoad.\""
    },
    {
      "commit": "00468f3b4b4741be407169a4f21054ebdcccb2b1",
      "tree": "ad095c39f477b4a55d7d306128dd1b68ca80ce93",
      "parents": [
        "384cb6674b967a9c58da9ad70fd6f98caa1d8691"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 27 18:02:48 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 27 18:03:11 2016 +0100"
      },
      "message": "Remove default argument values in GenerateGcRootFieldLoad.\n\nThese values were never or rarely used.\n\nTest: mmma art (with and without `ART_USE_READ_BARRIER\u003dtrue`)\nBug: 12687968\nBug: 29516974\nChange-Id: I5d15140ce501bf50d7a87871b1e492cee54913db\n"
    },
    {
      "commit": "24a4d11cdc5975215af079dc3d658b79e9b0717e",
      "tree": "c6ee859e8fcbf5b420ec396ffca763d53f632997",
      "parents": [
        "a1aa3b1f40e496d6f8b3b305a4f956ddf2e425fc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 26 13:10:46 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 27 11:06:12 2016 +0100"
      },
      "message": "Use CLREX in ARM/ARM64 CAS intrinsic Baker read barrier slow paths.\n\nFollow clang\u0027s implementation, which uses CLREX in\ncompare-and-exchange operations on the failure path, i.e.\nwhen the value read by the LDREX (ARM) or LDXR (ARM64)\ninstruction is not the expected value, in order to release\nthe monitor.  The previous implementation was perfectly\ncorrect, but this one may improve performance on some\nmicro-architectures.\n\nThis change only affects the\nart::arm::ReadBarrierMarkAndUpdateFieldSlowPathARM and\nart::arm64::ReadBarrierMarkAndUpdateFieldSlowPathARM64 slow\npaths.\n\nTest: make test-art-target-run-test-004-UnsafeTest\nBug: 29516905\nBug: 12687968\nChange-Id: I99edd1ae6489dcec4a0089bfef52736114c6cd48\n"
    },
    {
      "commit": "a1aa3b1f40e496d6f8b3b305a4f956ddf2e425fc",
      "tree": "efe3dd581dbe9fb33e615d1608f0571ec3984208",
      "parents": [
        "188edb3a3ec36ad5fc42373b1e1bed3a85b4f112"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 26 13:03:38 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 26 13:03:38 2016 +0100"
      },
      "message": "Add support for Baker read barriers in UnsafeCASObject intrinsics.\n\nPrior to doing the compare-and-swap operation, ensure the\nexpected reference stored in the holding object\u0027s field is\nin the to-space by loading it, emitting a read barrier and\nupdating that field with a strong compare-and-set operation\nwith relaxed memory synchronization ordering (if needed).\n\nTest: ART host and target tests and Nexus 5X boot test with Baker read barriers.\nBug: 29516905\nBug: 12687968\nChange-Id: I480f6a9b59547f11d0a04777406b9bfeb905bfd2\n"
    },
    {
      "commit": "2f2533f686f759ccd29d2712da2c7610382fb59f",
      "tree": "b4853d93d2427928bbf28aac135b939017360c9e",
      "parents": [
        "fc7a96464c58f2e3432cba2a3cfb19d84b033fdf",
        "a7812ae7939b199392f874b24a52454bbd0c13f2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 20 11:59:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 20 11:59:43 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Pass initial ART tests with new code generator.\""
    },
    {
      "commit": "d985a5a81a45595f5cb4d12da81eec760801c92c",
      "tree": "3d49d34870ddb439596321e6e6577845e97c61ac",
      "parents": [
        "b5706dd4e86c3687153a02fdda715e40f69c55d1",
        "94ce9c2f41ea198f5fdcfc09c48b9984c95a9c61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 20 09:24:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 20 09:24:03 2016 +0000"
      },
      "message": "Merge \"Change pResolveString entrypoint to kSaveEverything.\""
    },
    {
      "commit": "94ce9c2f41ea198f5fdcfc09c48b9984c95a9c61",
      "tree": "8dcaf27e8b34f51f5849b1e8d4366968f9bae849",
      "parents": [
        "2f61867045ffbd0c38a4ecec5f59632004f7efff"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 14:50:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 19 18:02:48 2016 +0100"
      },
      "message": "Change pResolveString entrypoint to kSaveEverything.\n\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Run ART test suite including gcstress with baker CC on host and Nexus 9.\nBug: 20323084\nChange-Id: I63c21a7d3be8ff7a5765b5003c85b5317635efe6\n"
    },
    {
      "commit": "58a4c6198a71973ea589edebe0b3f17c72d55e29",
      "tree": "f8ae9138190383bfd73cba141e751f67ce2391d5",
      "parents": [
        "d203296000f18dd582702eebe6a6e9c5b0182397"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 18 13:24:05 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 18 13:39:52 2016 -0700"
      },
      "message": "Delete unused blocked_register_pairs_ in code generators\n\nLegacy code for compatibility with quick?\n\nTest: test-art-host CC\nChange-Id: I9de261daea67dfd9bd3df89826ba9d10f135e29e\n"
    },
    {
      "commit": "a7812ae7939b199392f874b24a52454bbd0c13f2",
      "tree": "fcaff0417676c74ad7bf88e7c2571948e7eeef81",
      "parents": [
        "a497095b67c4ba2969d0b2a13f6959125c89d2bc"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Oct 17 10:03:36 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Oct 17 13:41:40 2016 +0100"
      },
      "message": "ARM: VIXL32: Pass initial ART tests with new code generator.\n\n- Implement enough codegen to pass ~70 art/tests.\n\n- When ART_USE_VIXL_ARM_BACKEND is defined:\n  - Blacklist known-to-fail target tests\n  - interpret-only everything except the tests themselves\n  - Set a flag to use the VIXL based ARM backend\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 mma test-art-target \u0026\u0026 mma test-art-host\n\nChange-Id: Ic8bc095e8449f10f97fa0511284790f36c20e276\n"
    },
    {
      "commit": "96eeb4e2bb21afe8783d62e06b91fd1aef682dbb",
      "tree": "097907f294206c45a03c4b63bf986b9e144116af",
      "parents": [
        "e2ced0db78b89b778cd1c9ef4ace5dec7dbc66b0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 12 22:03:31 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 12 22:27:38 2016 +0100"
      },
      "message": "Update HInstruction::NeedsCurrentMethod.\n\nHLoadString and HLoadClass when sharpened may not need it\nanymore. Instead just rely on the HCurrentMethod being the\nSSA dependency of those instructions.\n\nAlso save storing the current method in the stack if the\ngraph actually doesn\u0027t need it.\n\ntest: m test-art-host test-art-target\nChange-Id: I235d8275230637cbbd38fc0d2f9b822f6d2a9c1e\n"
    },
    {
      "commit": "aad75c6d5bfab2dc8e30fc99fafe8cd2dc8b74d8",
      "tree": "c1b9e1eabcf35c5cbb5b4f46313a4e062f2d5d51",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 03 08:46:48 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 17:51:46 2016 +0100"
      },
      "message": "Revert \"Revert \"Store resolved Strings for AOT code in .bss.\"\"\n\nFixed oat_test to keep dex files alive. Fixed mips build.\nRewritten the .bss GC root visiting and added write barrier\nto the artResolveStringFromCode().\n\nTest: build aosp_mips-eng\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-target-host-gtest-oat_test\nTest: Run ART test suite on host and Nexus 9.\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 5f926055cb88089d8ca27243f35a9dfd89d981f0.\n\nChange-Id: I07fa2278d82b8eb64964c9a4b66cb93726ccda6b\n"
    },
    {
      "commit": "e89e1b5fa28c38e4bcb508ef2fff5e1ab6572df9",
      "tree": "a09441ed36a407ab0d5d552fdff531f94462df17",
      "parents": [
        "f2ebe98e32603a52d5e0b927d8a8171e47bac3cf",
        "0576575d075e97a227010b4adf74ad5c8a920bde"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "message": "Merge \"String Compression for ARM and ARM64\""
    },
    {
      "commit": "0576575d075e97a227010b4adf74ad5c8a920bde",
      "tree": "c31eb030933e74d6d103979bcf0d1226e769eb5b",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 09 19:01:32 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 10:51:50 2016 -0700"
      },
      "message": "String Compression for ARM and ARM64\n\nChanges on intrinsics and Code Generation on ARM and ARM64\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for ARM before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.60% and boot.art decreased by 9.38%.\n\nMeanwhile for ARM64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.48% and boot.art decreased by 6.58%.\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-target\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nBug: 31040547\nChange-Id: I24e86b99391df33ba27df747779b648c5a820649\n"
    },
    {
      "commit": "5f926055cb88089d8ca27243f35a9dfd89d981f0",
      "tree": "8d87d400e36301eb648e19bcd225f13c469648ad",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 17:04:49 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 18:08:09 2016 +0100"
      },
      "message": "Revert \"Store resolved Strings for AOT code in .bss.\"\n\nThere are some issues with oat_test64 on host and aosp_mips-eng.\n\nAlso reverts \"compiler_driver: Fix build.\"\n\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41.\nThis reverts commit 04a44135ace10123f059373691594ae0f270a8a4.\n\nChange-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4\n"
    },
    {
      "commit": "63dccbbefef3014c99c22748d18befcc7bcb3b41",
      "tree": "60a498041bebff43bc1f43d438e3bc34a30887f7",
      "parents": [
        "6bee25976782a063d6b44f7718a6302761bf6403"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 21 13:51:10 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 29 15:58:43 2016 +0100"
      },
      "message": "Store resolved Strings for AOT code in .bss.\n\nAnd do some related refactorings.\n\nBug: 20323084\nBug: 30627598\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Run ART test suite including gcstress with baker CC on host and Nexus 9.\nTest: Build aosp_mips64-eng.\nChange-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e\n"
    },
    {
      "commit": "da079bba8403733cac9bb7415b038ffd77e62403",
      "tree": "3bfed6ea39483bda20c0059763c30aee2e6e5791",
      "parents": [
        "a1d66b9050aeecd7e698c51155f0dbc0198a6822"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 26 17:56:07 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 27 10:30:34 2016 +0100"
      },
      "message": "Cleanup String.\u003cinit\u003e handling.\n\nMove everything to one place (currently well_known_classes.cc, but\nno strong preference) and define a macro to easily handle the list\nof affected methods.\n\ntest: m test-art-host\ntest: m test-art-target\nChange-Id: Ib8372d130d5458516a1f1ae31014afc76037fc34\n"
    },
    {
      "commit": "5e4e11e171f90d9a3ea178fc8e72aac909de55d5",
      "tree": "53314d1139ac797d55258f39097ecfb5cef45920",
      "parents": [
        "ca8bad9136d1389deeebc8652fb17063388de6b2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 22 13:17:41 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 23 09:08:00 2016 +0100"
      },
      "message": "Clean-up sharpening and compiler driver.\n\nRemove dependency on compiler driver for sharpening\nand dex2dex (the methods called on the compiler driver were\ndoing unnecessary work), and remove the now unused methods\nin compiler driver.\n\nAlso remove test that is now invalid, as sharpening always\nsucceeds.\n\ntest: m test-art-host m test-art-target\nChange-Id: I54e91c6839bd5b0b86182f2f43ba5d2c112ef908\n"
    },
    {
      "commit": "804b03ffb9b9dc6cc3153e004c2cd38667508b13",
      "tree": "91c7fd54b5000e041bf9d3d5b233dabce1fad614",
      "parents": [
        "80eb0bc2757274816a014a2997848d288c9ee553"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 16:26:36 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 14:55:44 2016 +0100"
      },
      "message": "Change remaining slow path throw entrypoints to save everything.\n\nChange DivZeroCheck, BoundsCheck and explicit NullCheck\nslow path entrypoints to conform to kSaveEverything.\n\nOn Nexus 9, AOSP ToT, the boot.oat size reduction is\n  prebuilt multi-part boot image:\n    - 32-bit boot.oat: -12KiB (-0.04%)\n    - 64-bit boot.oat: -24KiB (-0.06%)\n  on-device built single boot image:\n    - 32-bit boot.oat: -8KiB (-0.03%)\n    - 64-bit boot.oat: -16KiB (-0.04%)\n\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Manually disable implicit null checks and test as above.\nChange-Id: If82a8082ea9ae571c5d03b5e545e67fcefafb163\n"
    },
    {
      "commit": "d300d8fa3cf696c459eaf05ffd374c11eb3e9d78",
      "tree": "a234adc5e0e9695d35bf8396a693e9998979b85d",
      "parents": [
        "ae9ed26e8db9123a6a3542ea00767977531d4f1a"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jul 15 14:00:56 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 12:05:36 2016 +0000"
      },
      "message": "ARM: Use vstm/vldm for live floating point registers save/restore in SlowPathCode.\n\nTest: m test-art-target; m test-art-host\n\nChange-Id: Id22271c572bb698728444bef90d5c7487ab84b1a\n"
    }
  ],
  "next": "9364383522de6aa996a42c6866354e7a402d1b33"
}
