)]}'
{
  "log": [
    {
      "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": "3c89d4234589816fb7dafb5215543f2cf023ce6c",
      "tree": "a9f6429ffd6625203bdba9c01520b6a5e64ac539",
      "parents": [
        "1fed1dc7b1ea75b0465c0b2b3457718aab5a0f34"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 17 11:30:23 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 17 11:32:59 2017 +0000"
      },
      "message": "x86/string compression: Use TESTB instead of TESTL in String.charAt().\n\nAnd fix disassembly of the now unused TESTL.\n\nTest: testrunner.py --host with string compression enabled.\nTest: Manual inspection of dump-oat output.\nBug: 35433135\nBug: 31040547\nChange-Id: I36c955bc1f2243954ecc315266a2f3fce5d87693\n"
    },
    {
      "commit": "d776ff08e07494327716f0d2ea1a774b2ebfbca9",
      "tree": "cedf874dd494d881adc572a10a9d14bca852add6",
      "parents": [
        "3fb852a88d2a8ffaa87089752f4b1d5f9d6ce3c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 17 09:32:18 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 15 14:46:15 2017 -0800"
      },
      "message": "Add invoke infos to stack maps\n\nInvoke info records the invoke type and dex method index for invokes\nthat may reach artQuickResolutionTrampoline. Having this information\nrecorded allows the runtime to avoid reading the dex code and pulling\nin extra pages.\n\nCode size increase for a large app:\n93886360 -\u003e 95811480 (2.05% increase)\n\n1/2 of the code size increase is from making less stack maps deduped.\nI suspect there is less deduping because of the invoke info method\nindex.\n\nMerged disabled until we measure the RAM savings.\n\nTest: test-art-host, N6P boots\n\nBug: 34109702\n\nChange-Id: I6c5e4a60675a1d7c76dee0561a12909e4ab6d5d9\n"
    },
    {
      "commit": "fdb7d638c17dab47984e1d325d04796bb426d9b3",
      "tree": "a352c1d8e52e18551c16bfea5bb9c564695b5239",
      "parents": [
        "8dc12b1546c7409be19a7b5dc48932011db13067"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 08 15:07:18 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 15 10:25:54 2017 +0000"
      },
      "message": "Inline methods that throw.\n\nForked from https://android-review.googlesource.com/214292\n\ntest: 637-checker-throw-inline\nbug: 30933338\nChange-Id: I184be82dfab0710af3f3796e9e486c7817fa9c60\n"
    },
    {
      "commit": "e92ba687f9ab2a3cd9724f494b6899e8e6e472ec",
      "tree": "895843c819cd8d456492034bf7c3786aea6730f3",
      "parents": [
        "f39d42255214cf5e7297889e237a1917f2f5a963",
        "b703d184603dc25f35da98b6be43054e1594e33b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 15 09:06:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 15 09:06:28 2017 +0000"
      },
      "message": "Merge \"Change behavior of $noinline$ to now force not inlining.\""
    },
    {
      "commit": "b703d184603dc25f35da98b6be43054e1594e33b",
      "tree": "e226855ba24664c17beca8c2dfeac837455883fe",
      "parents": [
        "2d98ba68f13dc219c088a12f369c5778bf398f14"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 14 18:05:28 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 14 22:16:09 2017 +0000"
      },
      "message": "Change behavior of $noinline$ to now force not inlining.\n\nIn order to start supporting more inlining, like inlining\nmethods that have a throwing branch, we need to change our\ntesting strategy.\n\ntest: test-art-host\nChange-Id: I65354884898d86a18e78b96b7c21a8728c83f86d\n"
    },
    {
      "commit": "fa4333dcb481e564f54726b4e6f8153612df835e",
      "tree": "ae597c7587dc214434a180962c4373d3748f51ab",
      "parents": [
        "2d98ba68f13dc219c088a12f369c5778bf398f14"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:10:34 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:44:48 2017 -0800"
      },
      "message": "ART: Add operator \u003d\u003d and !\u003d with nullptr to Handle\n\nGet it in line with ObjPtr and prettify our code.\n\nTest: m\nChange-Id: I1322e2a9bc7a85d7f2441034a19bf4d807b81a0e\n"
    },
    {
      "commit": "2d98ba68f13dc219c088a12f369c5778bf398f14",
      "tree": "af94d7fc529953701e1231a8ddc453221c414596",
      "parents": [
        "582fc0501bbdbb538cafdf36aec3e142e390688f",
        "e39f14ff4e0d7c70016874cff24863b912d40bf1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 15:43:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 15:43:23 2017 +0000"
      },
      "message": "Merge \"ARM64: Improve String.equals() intrinsic for const strings.\""
    },
    {
      "commit": "e39f14ff4e0d7c70016874cff24863b912d40bf1",
      "tree": "57588025e96e01ac2998cbdcf0ff12a822fdcd4e",
      "parents": [
        "4e4b62e21672dbacf5d5abb688a126aabad29269"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 10 15:44:25 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 14 13:25:05 2017 +0000"
      },
      "message": "ARM64: Improve String.equals() intrinsic for const strings.\n\nAnd add additional tests to 021-string2.\n\naosp_angler-userdebug:\n  before:\n    arm64 boot*.oat: 43324664\n    arm64 boot*.oat/string compression: 43411112\n  after:\n    arm64 boot*.oat: 43300136 (-24528)\n    arm64 boot*.oat/string compression: 43345464 (-65648)\n\nThe string compression code size difference drops from\n86448 to 45328.\n\nTest: m test-art-target on Nexus 6P\nTest: m test-art-target on Nexus 6P with string compression enabled.\nBug: 31040547\nChange-Id: I99a3777b91b248da2b0ac25abd260f9e5abb2c09\n"
    },
    {
      "commit": "5812e20ff7cbc8efa0b8d7486ada2f58840a6ad5",
      "tree": "be0e9fdeb90bcbad76b17b3aae4e746d977d80ee",
      "parents": [
        "518f373324f355f8e58440dfbc3f5a1f2244bde7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 13 18:32:04 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 13 19:34:54 2017 -0800"
      },
      "message": "Revert^3 \"Hash-based dex cache type array.\"\n\nAssert failing for \"earchbox:search\":\nF zygote64: class_linker.cc:4612] Check failed: handle_scope_iface.Get() !\u003d nullptr\n\nTest: m test-art-host\nBug: 34839984\nBug: 30627598\nBug: 34659969\n\nThis reverts commit 85c0f2ac03417f5125bc2ff1dab8109859c67d5c.\n\nChange-Id: I39846c20295af5875b0f945be7035c73ded23135\n"
    },
    {
      "commit": "3228908337fdfe851223f8ae374538de25cb5ad1",
      "tree": "8aeb504fe0ae10e1970201b0b326c3f82cfdc1ff",
      "parents": [
        "7a2a3407a8c0832a4683e103c8d9a7f0ddcb8d51"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 09 15:57:37 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 13 15:37:04 2017 -0800"
      },
      "message": "Deduplicate register maps for both inline and normal stack maps\n\nBefore it only deduplicated the normal stack map dex register maps.\nCode size for a large app: 93341616 -\u003e 92678040 (-0.7%)\n\nAdded test.\n\nBug: 34621054\n\nTest: test-art-host\n\nChange-Id: I4fab4e40915bfa12cb978edbb3cbc19e2cf00954\n"
    },
    {
      "commit": "71953d82e802d8e8e1619562aea26ed3204bafd7",
      "tree": "2e06989273e3a8e98ccf6c3a40b431d5e05f20f8",
      "parents": [
        "ab58a629d6cfe75f0ed34326c2ca6364b2203885",
        "85c0f2ac03417f5125bc2ff1dab8109859c67d5c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 13 16:53:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 16:53:04 2017 +0000"
      },
      "message": "Merge \"Revert^2 \"Hash-based dex cache type array.\"\""
    },
    {
      "commit": "ab58a629d6cfe75f0ed34326c2ca6364b2203885",
      "tree": "abba45a6314d4b83a1e1d004019b5c9bc360b34d",
      "parents": [
        "47bad4dc4d400ce51ba9d5640ae34b28360d9b85",
        "f94fa81e20d00929ef52707cd577353b95d40284"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 13 12:41:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 12:41:55 2017 +0000"
      },
      "message": "Merge \"String Compression for MIPS32 and MIPS64\""
    },
    {
      "commit": "47bad4dc4d400ce51ba9d5640ae34b28360d9b85",
      "tree": "5a32492b80c504023f6487eb74f800a91e8c47d6",
      "parents": [
        "4ab54e1935677102c7bec6ec174c7438d89fcd86",
        "64be0070b3e54454683ad049ae653ee7a91c0076"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 13 11:58:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 11:58:39 2017 +0000"
      },
      "message": "Merge changes I425a7d61,I30365ad6\n\n* changes:\n  Regression test for issue with VIXL AArch64 veneer pool.\n  ARM64: Remove all uses of BlockPoolsScope.\n"
    },
    {
      "commit": "f94fa81e20d00929ef52707cd577353b95d40284",
      "tree": "cb79d0e0610775a41f0511b4cacfe87136bbba60",
      "parents": [
        "806ac631e53f12061cb0ae7640aa9cd0dd79243d"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Feb 10 17:48:52 2017 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Feb 13 09:05:26 2017 +0000"
      },
      "message": "String Compression for MIPS32 and MIPS64\n\nChanges on intrinsics and Code Generation on MIPS32 and MIPS64 for\nstring compression feature.\n\nTesting is done with STRING_COMPRESSION_ENABLED \u003d true (in libcore),\nmirror::kUseStringCompression \u003d true and STRING_COMPRESSION_FEATURE set\nto 1.\n\nTest: booted MIPS32 and MIPS64 in QEMU\nTest: mma test-art-target-run-test on CI20 (MIPS32R2)\nTest: mma test-art-target-run-test in QEMU (MIPS64R6)\n\nChange-Id: If50a6b6c0792bfa34d4fdff6bf2c7542211d2689\n"
    },
    {
      "commit": "914d7a8fca1184837475016d186585d863e81830",
      "tree": "e0b2ea229d4071d3d1149aa3c60307b75e350d6c",
      "parents": [
        "4e4b62e21672dbacf5d5abb688a126aabad29269"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Feb 07 14:33:49 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Feb 10 15:12:36 2017 +0000"
      },
      "message": "ARM64: Remove all uses of BlockPoolsScope.\n\nBlockPoolsScope should not be used because it is a VIXL scope\nfor VIXL internal usage only. In arm64 backend the intent was to\nblock pools between a particular instruction (Ldr, Str, Blr, etc)\nand a subsequent MaybeRecordImplicitNullCheck or RecordPcInfo call.\nHowever pools should be emitted at the opening of a scope if this\nis required to satisfy branch/ldr ranges. This is not done by the\nBlockPoolsScope, so proper scopes are now used now:\nExactAssemblyScope and EmissionCheckScope.\n\nTest: test-art-host\nTest: test-art-target\n\nBug: 34850123\n\nChange-Id: I30365ad63c644cf9dd85d5a3c2118f9c57be9d20\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": "1c66504e0613bdf02dd15e15cd7e5167a4569d19",
      "tree": "ab01d21a1ab960e02e09ba040ee52ed0d3dc3a80",
      "parents": [
        "11be69af1546bf66fa63ec13c250e4d28087b64e",
        "ea4c126a0165c5a4b997986e6e01c7f975642167"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 10 13:11:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 10 13:11:42 2017 +0000"
      },
      "message": "Merge \"Change type initialization entrypoints to kSaveEverything.\""
    },
    {
      "commit": "85c0f2ac03417f5125bc2ff1dab8109859c67d5c",
      "tree": "844952d237e35faa5c5a2357ab037366c8397115",
      "parents": [
        "8d4b1189639f0d8982bde681ccbdd7c03fe6ddbf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 02 16:42:38 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 10 11:23:11 2017 +0000"
      },
      "message": "Revert^2 \"Hash-based dex cache type array.\"\n\nThe reason for the revert was fixed by\n    https://android-review.googlesource.com/332666 .\nWe now enable clearing dex cache types in test 155 from that\nCL. Also avoid an unnecessary store in LookupResolvedTypes()\nand prevent verifier from messing up the dex cache types.\n\nTest: m test-art-host\nBug: 34839984\nBug: 30627598\nBug: 34659969\n\nThis reverts commit d16363a93053de0f32252c7897d839a46aff14ae.\n\nChange-Id: Ie8603cfa772e78e648d005b0b6eae59062ae729d\n"
    },
    {
      "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": "8d4b1189639f0d8982bde681ccbdd7c03fe6ddbf",
      "tree": "a16a1efaaadcb51001554a1ab829fbc456b104ae",
      "parents": [
        "e6dddf0f4f31db42c67661adc3845165c64d4c3d",
        "cd556b003adbb53739d4b3f43135e6a0ae69509a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 09 12:30:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 09 12:30:42 2017 +0000"
      },
      "message": "Merge \"Fix dex cache resolved types and class table mismatch.\""
    },
    {
      "commit": "cd556b003adbb53739d4b3f43135e6a0ae69509a",
      "tree": "a30c9f03071d87e1f75a0d0b8c2961d113ea767d",
      "parents": [
        "357dcb73934356239292c46d6fbedba734da5e00"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 03 11:47:34 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 09 10:10:29 2017 +0000"
      },
      "message": "Fix dex cache resolved types and class table mismatch.\n\nRecord class table in ClassLinker::DexCacheData and use\nit in DexCache.setResolvedType() to store the type also\nin the initiating loader\u0027s class table if the dex file\nhas been registered.\n\nAlso throw InternalError when trying to register the\nsame DexFile with multiple class loaders. (Different\nDexFile instances referencing the same file are OK.)\n\nTest: 155-java-set-resolved-type\nTest: m test-art-host\nBug: 30627598\nBug: 34193123\nBug: 34839984\nChange-Id: Ia48acb300337c45880ea1459d2d32789546d67f4\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": "575d3e60c68b5cf481b615dde4a16283507b19ed",
      "tree": "4718f2747233e74268de21d804df9bfe0b7e4362",
      "parents": [
        "857acf51fbc5a931939c20e9e299c69676baf654"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 06 11:00:40 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 08 09:51:27 2017 -0800"
      },
      "message": "Clean up code info table layout\n\nPreviously:\nTable layout was computed multiple places like stack_map_stream,\nand getters. This made it difficult to add new stack map tables and\nmade the code hard to understand.\n\nThis change makes the table layout specified all inside of the code\ninfo. Updating the layout only requires changing ComputeTableOffsets.\n\nChanged the stack map inline info offset to be an index, so that it is\nnot require the inline infos are directly after the dex register table.\n\nOat file size for a large app: 94459576 -\u003e 93882040 (-0.61%)\n\nUpdated oatdump and fixed a bug that was incorrectly computing the\nregister mask bytes.\n\nBug: 34621054\n\nTest: test-art-host\n\nChange-Id: I3a7f141e09d5a18bce2bc6c9439835244a22016e\n"
    },
    {
      "commit": "f8512f8515f7568984e1ca209929262ea88e4b59",
      "tree": "3c3a5f2c83cf3e6daa07a82793644753da2d84a1",
      "parents": [
        "1a991dbf85c8f4316f68641393dabf18ef182d44",
        "d5cd497f9cd505fb2c085fa09e03b6f3a39d5d34"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 07 13:48:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 07 13:48:32 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Remove erroneous DCHECK.\""
    },
    {
      "commit": "1a991dbf85c8f4316f68641393dabf18ef182d44",
      "tree": "e4cc30cb281d8eb3a50fd1ffd7f077f9a586a766",
      "parents": [
        "61d52088047bb803910b598f299903995ca48200",
        "7b3672e2af7dd2a0f9922b2b5bb48d1be579acbe"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 07 12:08:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 07 12:08:20 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix \"Align allocation entrypoints..\".\""
    },
    {
      "commit": "7b3672e2af7dd2a0f9922b2b5bb48d1be579acbe",
      "tree": "67c8165bb85c18d925529b53a0d9abfe9535a09f",
      "parents": [
        "7b220d60e3cb58c384a0d245106406080c6f3e37"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Feb 03 17:30:34 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Feb 06 18:48:11 2017 +0000"
      },
      "message": "ARM: VIXL32: Fix \"Align allocation entrypoints..\".\n\nAdd missing changes for VIXL backend to\nhttps://android-review.googlesource.com/#/c/330124/.\n\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: Ic8383a7a426cbe8501e12838e9728fc3f359f03d\n"
    },
    {
      "commit": "d56a6a32547dfa354697430f89a0038895baac8e",
      "tree": "ef1468adfa615eecfefb012ca205325153e1993c",
      "parents": [
        "23d953942fe54bccbb3378af44aee6cd5ee6deaa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 06 16:36:24 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 06 16:36:24 2017 +0000"
      },
      "message": "Remove obsolete restriction with allocations and dex cache.\n\nWe used to rely on being in the same dex file for doing allocations,\nbut not anymore.\n\nTest: ART_TEST_JIT\u003dtrue test-art-host\nChange-Id: Iabc27469dadea6bfe39054e4be305e620818ac99\n"
    },
    {
      "commit": "85bd7a37139bf79ee664777db079b86a7105dac8",
      "tree": "c000e4944ba096f9794b5a31a2fc75c56d7db775",
      "parents": [
        "f85fc6bd9d65ef4689d6af797adb889da8cf15e3",
        "fbdfa6d7485534eedbd3fb32cf572529ebddb63c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 06 11:53:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 06 11:53:54 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Inline across dex files for JIT.\"\"\""
    },
    {
      "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": "fbdfa6d7485534eedbd3fb32cf572529ebddb63c",
      "tree": "4835ed17e31443c3e220a2eaff8d88c6c16b9cd0",
      "parents": [
        "8781fe65fe41d971173bb2d05afe0dc00b5c08ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 10:43:13 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 06 08:26:48 2017 +0000"
      },
      "message": "Revert \"Revert \"Inline across dex files for JIT.\"\"\n\nbug:30933338\n\nThis reverts commit d16da8bd8106452eea82408748dc6b3fd64bcb80.\n\nChange-Id: I6a30354d6d00442cb1a542af063c7769865e369d\n"
    },
    {
      "commit": "90b936ddda63139ff46a6755c3b83ad6e4ab4ac5",
      "tree": "c7ce2c3004eecc16ab41ed7cde105c3019638d4b",
      "parents": [
        "b78a8af993e877d74c5938f65f95feaf2fa01321"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 31 08:58:55 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 03 10:03:52 2017 -0800"
      },
      "message": "ART: Refactor verify_object.h\n\nMove the actual VerifyObject check into a new cc file, as we\ncommonly don\u0027t enable the check at all. This allows to cut the\n-inl include from almost all current users.\n\nThis also exposes missing -inl includes. Also fix up some of our old\nmess where .h defined functions require -inl.h defined functions.\n\nTest: m\n\nChange-Id: I3dd821bbe2015564a29bf1ed9be00f7a7276ad61\n"
    },
    {
      "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": "d5cd497f9cd505fb2c085fa09e03b6f3a39d5d34",
      "tree": "8584af041ed9788327925c3727e48d98baf87954",
      "parents": [
        "e36c51aee58e61e9fc89851b767379c587f050e3"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Feb 03 11:38:35 2017 +0000"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Feb 03 12:39:16 2017 +0000"
      },
      "message": "ARM: VIXL32: Remove erroneous DCHECK.\n\nThis DCHECK was removed from code_generator_arm.cc by d8c052ac but not\nfrom code_generator_arm_vixl.cc at the same time.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue; m test-art-target\n\nChange-Id: I1132311c37d5a09ee998888b140eb45fac0f7d39\n"
    },
    {
      "commit": "41f74275b31317bafcb414c9ffbb65812a07e98f",
      "tree": "a663dc4114b4a28d4943561d39180c4d7ea3a754",
      "parents": [
        "d90cd5c435743379e592464f5443d7e86a102d01",
        "d09584456559f669f5999fb1ff32aa89ebf6ef4e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 12:36:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 03 12:36:34 2017 +0000"
      },
      "message": "Merge \"Align allocation entrypoints implementation between arm/arm64/x86/x64.\""
    },
    {
      "commit": "d90cd5c435743379e592464f5443d7e86a102d01",
      "tree": "daeb59237c9c51609f0ebab500467a840559d90d",
      "parents": [
        "3f50d3cda19792d3ac0137e59300b43c542e7dca",
        "d16da8bd8106452eea82408748dc6b3fd64bcb80"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 10:36:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 03 10:36:09 2017 +0000"
      },
      "message": "Merge \"Revert \"Inline across dex files for JIT.\"\""
    },
    {
      "commit": "d16da8bd8106452eea82408748dc6b3fd64bcb80",
      "tree": "027c5bfdea98ec8726436e695b5eb4d9572bbaf5",
      "parents": [
        "f290c01c61f8a2979efa74ffcd2f54c5e426a3d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 10:35:47 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 10:35:47 2017 +0000"
      },
      "message": "Revert \"Inline across dex files for JIT.\"\n\nBroke hikey build.\n\nbug:30933338\n\nThis reverts commit f290c01c61f8a2979efa74ffcd2f54c5e426a3d0.\n\nChange-Id: I3363d703c54d0f9b69197a29395cc08f60c8b2ac\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": "3f50d3cda19792d3ac0137e59300b43c542e7dca",
      "tree": "43bbe84313ac903182e5e521b854d05a0f5f4f0b",
      "parents": [
        "05dfc65a594abe0aeac44bf8b82e381e25eb61d9",
        "f290c01c61f8a2979efa74ffcd2f54c5e426a3d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 09:04:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 03 09:04:50 2017 +0000"
      },
      "message": "Merge \"Inline across dex files for JIT.\""
    },
    {
      "commit": "05dfc65a594abe0aeac44bf8b82e381e25eb61d9",
      "tree": "daeb59237c9c51609f0ebab500467a840559d90d",
      "parents": [
        "26bf9632d0652c57cbe7c4b00970f2b6091651fd",
        "627c1a0e573b4512e68f097771d7fdd4d8c7f7de"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 03 08:58:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 03 08:58:55 2017 +0000"
      },
      "message": "Merge \"MIPS: Support kJitTableAddress kinds of string/class loads.\""
    },
    {
      "commit": "de2e1a69edc4eee833c924f9ffa5ccf25479ebcf",
      "tree": "dceeeb79a58ec8578c92390684aaaec5cf80c1e3",
      "parents": [
        "406402baa4900c36b3fe27b03bf9e04e978e50be",
        "c032e74b57d31861b6bb55500016ebb5476eb142"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 02 19:32:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 19:32:04 2017 +0000"
      },
      "message": "Merge \"Math.min and Math.max intrinsics for ARM\""
    },
    {
      "commit": "406402baa4900c36b3fe27b03bf9e04e978e50be",
      "tree": "7efe1b7a33b70e34050249fd237abb374c795d71",
      "parents": [
        "2413dc18ad846bd230d430e216a8f48595264ab3",
        "1ebe4fe1a6cb0835197ee3a848d554b79ca9d367"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 02 18:46:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 18:46:05 2017 +0000"
      },
      "message": "Merge \"Fix creating self-recursive obsolete methods.\""
    },
    {
      "commit": "c032e74b57d31861b6bb55500016ebb5476eb142",
      "tree": "044af8b3efe9326245a9f32144a6b23b64ec0e22",
      "parents": [
        "1e6578a68d6f4499362254bcdeb6bbf55e309ea4"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Mon Mar 28 16:44:32 2016 +0100"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Feb 02 17:04:03 2017 +0000"
      },
      "message": "Math.min and Math.max intrinsics for ARM\n\nThis patch implements min/max intrinsics for:\n  * Long\n  * Float\n  * Double\n\nTest: m test-art-host\nTest: m test-art-target\nTest: 082-inline-execute\n\nChange-Id: I2dfab8ab606f3d01fba712f9014d2e0617449d74\n"
    },
    {
      "commit": "f290c01c61f8a2979efa74ffcd2f54c5e426a3d0",
      "tree": "73c3f221a0d0299f8a595fe3e4b60aff2b632b27",
      "parents": [
        "de09f06e243f9548e58feec79b0cd249065a5f28"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 27 23:09:22 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 02 15:48:23 2017 +0000"
      },
      "message": "Inline across dex files for JIT.\n\nbug:30933338\ntest: ART_TEST_JIT\u003dtrue test-art-host test-art-target\n\nChange-Id: I4ac708d70d90c2db4139d99a75bf4665a810c206\n"
    },
    {
      "commit": "2cf7d5e53e94ceb2bccb06f251fd3df26e126011",
      "tree": "5f6998dcafc4cdf489ed150f7f3d9547e813ca3d",
      "parents": [
        "caebca9d2a00059c11ecc5f055c25eacf0630392",
        "22aa54bf8469689c7c6c33f15ff4df2ffba8fa15"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 02 11:23:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 11:23:03 2017 +0000"
      },
      "message": "Merge \"AArch64: Add HInstruction scheduling support.\""
    },
    {
      "commit": "1ebe4fe1a6cb0835197ee3a848d554b79ca9d367",
      "tree": "69e01b73d1b5eccc37cf19a1daea89052de06a94",
      "parents": [
        "44790fe8b33c7a80da2e77787d5f8d4d4549114b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 30 14:57:11 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 01 15:39:49 2017 -0800"
      },
      "message": "Fix creating self-recursive obsolete methods.\n\nWe were using recursive loading of the current art method which was\nmaking us miss obsolete methods in some cases.\n\nWe could also end up checking the wrong method when walking the stack.\n\nWe also add tests for recursive obsolete methods in general.\n\nBug: 34815470\n\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue mma -j40 test-art-host\nChange-Id: I522fd4cac4e3f9d35d03b128bad6d6971cfe6c4a\n"
    },
    {
      "commit": "627c1a0e573b4512e68f097771d7fdd4d8c7f7de",
      "tree": "5e9590d470e32e205f862d694cebd95da5cf0a97",
      "parents": [
        "318797a758f81e7f8a0b440129238b9b5eb1b74e"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Jan 30 19:28:14 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Feb 01 15:29:43 2017 -0800"
      },
      "message": "MIPS: Support kJitTableAddress kinds of string/class loads.\n\nAlso remove a few stale comments.\n\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: \"make -j1 ART_TEST_DEFAULT_COMPILER\u003dfalse ART_TEST_OPTIMIZING\u003dfalse\n       ART_TEST_INTERPRETER\u003dfalse ART_TEST_JIT\u003dtrue\n       test-art-target-run-test\"\nTest: booted MIPS32R2 in QEMU\n\nChange-Id: I8914b8e6594e030f8137e7fface1ae20b6d6b971\n"
    },
    {
      "commit": "1a20b6801f2432a42b906f0de01e7e9586526aec",
      "tree": "ae3faaf42a2b560601fc024ae16898a5dfa42261",
      "parents": [
        "357dcb73934356239292c46d6fbedba734da5e00"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 31 14:25:16 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 01 12:46:43 2017 -0800"
      },
      "message": "Deduplicate register masks\n\nData is commonly shared between different stack maps. The register\nmasks are stored after the stack masks.\n\nOat size for a large app:\n96722288 -\u003e 94485872 (-2.31%)\n\nAverage oat size reduction according to golem -3.193%.\n\nBug: 34621054\n\nTest: test-art-host\n\nChange-Id: I5eacf668992e866d11ddba0c01675038a16cdfb4\n"
    },
    {
      "commit": "d16363a93053de0f32252c7897d839a46aff14ae",
      "tree": "8823c6dd4641eae333aa7001203460757a515010",
      "parents": [
        "ac240396125911b52437a460a400c8b38be43a96"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 01 14:09:13 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 01 15:27:37 2017 +0000"
      },
      "message": "Revert \"Hash-based dex cache type array.\"\n\nReverting to work around some programs crashing with\n    Check failed: handle_scope_iface.Get() !\u003d nullptr.\nthough the reason for the failure not yet understood.\n\nTest: m test-art-host\nBug: 34839984\nBug: 30627598\nBug: 34659969\nBug: 30419309\n\nThis reverts commit ec7862283dd49f5a58d0ac45960ce27c2f7671b8.\n\nChange-Id: Ifded663633082f1e59e5b6ff2e026dc559bd6b82\n"
    },
    {
      "commit": "45aa598cd1773f5eb1705dec13bea059238e054d",
      "tree": "f5a6fd7445a74218547cd6c4e28dc835821c355e",
      "parents": [
        "f2042db1b41cc21cc540c5ad7d353cbe1e3a32df"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 18 02:15:09 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 31 10:15:26 2017 -0800"
      },
      "message": "Deduplicate stack masks\n\nThe stack masks repeat often enough so that it is worth deduplicating\nthem.\n\nOat size for a large app:\n98143600 -\u003e 96722288 (-1.44%)\n\nBug: 34621054\n\nTest: test-art-host\nChange-Id: If73d51e46066357049d5be2e406ae9a32b7ff1f4\n"
    },
    {
      "commit": "8de998e34397128596cc166ebee0a856b74fc9c2",
      "tree": "7fb850961e0338cb4e74dcd898f6e16681be1431",
      "parents": [
        "103d7254b2c0a8cf6b32778c1223ae93abf02bdd",
        "d3ba626b424511b91db8e04660e3248cdd597100"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 31 17:46:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 31 17:46:02 2017 +0000"
      },
      "message": "Merge \"Fix bug in geometric last value (found with fuzz testing)\""
    },
    {
      "commit": "f80a08701e9d084b0bf63a7df401f41fa317ad80",
      "tree": "feb708b43ce7ab097a7a7cc7e90c4d5479bf7573",
      "parents": [
        "b49cc5506bdf8c3aa406eab5579bcd64fdaa3a43",
        "558dea16c0d3134376634bd1de0fef3146959995"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 31 15:52:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 31 15:52:30 2017 +0000"
      },
      "message": "Merge \"Handle cycles with double stack slots in ARM64 parallel moves.\""
    },
    {
      "commit": "6099d5e2a23291b9cd9bfc9030327d5b7bddc3eb",
      "tree": "0d71716339d436a5622bae4f6df59a62afa4242c",
      "parents": [
        "202d9ac328d9e37cf956b473cc2c1083622df1a4"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Apr 20 18:44:56 2016 +0100"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Jan 31 10:16:41 2017 +0000"
      },
      "message": "Implement Math.rint Intrinsic for ARM32.\n\nTest: m test-art-host\nTest: m test-art-target\nTest: 082-inline-execute\n\nChange-Id: If73bcea5f9fb24942c7390c6ccbcfb012f8951c7\n"
    },
    {
      "commit": "d3ba626b424511b91db8e04660e3248cdd597100",
      "tree": "3570f60f42a66fb967bb26cede8bce3c48853781",
      "parents": [
        "fbf47ea64a9f797a82030e919fa4f085c9eb5b28"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jan 30 14:37:12 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jan 30 14:37:12 2017 -0800"
      },
      "message": "Fix bug in geometric last value (found with fuzz testing)\n\nRationale:\nWhen power computation overflows, div should use 0 while mul should\nuse truncated version. Both cases were incorrectly using the latter.\n\nTest: test-art-host\nBug: 34779592\nChange-Id: I9eb8e1280c58b09d57886128f4df4541c143afaa\n"
    },
    {
      "commit": "e0be2fe923649aa2d29dc71ff4331d2af692e3cf",
      "tree": "fde551758497eded820a9a6f412a947ebad4ee1a",
      "parents": [
        "192edbe3ea52cb7f47cca33ced6f448904e11a59",
        "6b892cd757db7e163b54c8a0ef5ba777b1a4772c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 30 22:36:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 22:36:34 2017 +0000"
      },
      "message": "Merge \"MIPS32R6: Improve PC-relative string/class loads and invokes.\""
    },
    {
      "commit": "6b892cd757db7e163b54c8a0ef5ba777b1a4772c",
      "tree": "b0e65b596158ef9207983305517ae66ab5f87b67",
      "parents": [
        "e38436063fb4baf88152344b465eeeb1b7f6dce5"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Jan 03 17:11:38 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Jan 30 09:05:44 2017 -0800"
      },
      "message": "MIPS32R6: Improve PC-relative string/class loads and invokes.\n\nUse PC-relative addressing on MIPS32R6 instead of\nHMipsDexCacheArraysBase and allow such PC-relative\naddressing in presence of irreducible loops.\n\nAlso save a couple of instructions when handling\nstring and class loads from bss.\n\nTest: test-art-host-gtest\nTest: booted MIPS32R2 in QEMU\nTest: \"make -j1 ART_TEST_DEFAULT_COMPILER\u003dfalse ART_TEST_OPTIMIZING\u003dtrue\n       ART_TEST_INTERPRETER\u003dfalse ART_TEST_JIT\u003dfalse\n       ART_TEST_PIC_TEST\u003dtrue test-art-target-run-test\"\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: \"make -j1 ART_TEST_DEFAULT_COMPILER\u003dfalse ART_TEST_OPTIMIZING\u003dtrue\n       ART_TEST_INTERPRETER\u003dfalse ART_TEST_JIT\u003dfalse\n       ART_TEST_PIC_TEST\u003dtrue test-art-target-run-test32\"\n\nChange-Id: I5d0fcbf271541294a3d4479987d52e2aaff084d9\n"
    },
    {
      "commit": "558dea16c0d3134376634bd1de0fef3146959995",
      "tree": "2d3b666ab2cc5f3f201ea54b14e664f07ddbb901",
      "parents": [
        "d8f6e6430b26bf199f4a52f0624becb7c29f3c19"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 27 19:40:44 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 30 13:12:51 2017 +0000"
      },
      "message": "Handle cycles with double stack slots in ARM64 parallel moves.\n\nWhen acquiring a scratch register to emit a move between two\ndouble stack slots, ask for a FP register first, to avoid\ndepleting the core scratch register pool, which is used in\nvixl::aarch64::MacroAssembler::LoadStoreMacro when the\noffset does not fit in the immediate field of the load\ninstruction.\n\nTest: make test-art-target (on ARM64)\nBug: 34760542\nChange-Id: Ie9b37d007ed6ec5886931a35dcb22a9aff73bbbe\n"
    },
    {
      "commit": "6abbd9ef363783054fe99230090ab9e881cc4c17",
      "tree": "3e8b3ffbb05f559fb7254ab898f8bb436e12ecf7",
      "parents": [
        "68158f2bf23c261ec3e5d51089c0233870f69e6a",
        "0cb124219e986a27c40001a1b22ea7ebd833a2d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 30 13:11:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 13:11:03 2017 +0000"
      },
      "message": "Merge \"MIPS: Refactor code for unresolved field entrypoint.\""
    },
    {
      "commit": "ec7862283dd49f5a58d0ac45960ce27c2f7671b8",
      "tree": "26d6dcc1d5ed4f0ba5ac15f17ef7377215684bf6",
      "parents": [
        "c01d49091f4588777db5bf45345f388058caa99f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 20 16:24:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 10:21:16 2017 +0000"
      },
      "message": "Hash-based dex cache type array.\n\nTest: m test-art-host (Interpreter, Optimizing, JIT)\nTest: m test-art-target on Nexus 6P (Interpreter, Optimizing, JIT)\nTest: Nexus 6P boots\nTest: m valgrind-test-art-host\nBug: 30627598\nBug: 34659969\nBug: 30419309\nChange-Id: Ic00eda89e58088a3573fc9ec0ad04c0e69e161d1\n"
    },
    {
      "commit": "0cb124219e986a27c40001a1b22ea7ebd833a2d8",
      "tree": "87c335705a0386710553ce5bc6cca4119c017ebd",
      "parents": [
        "e38436063fb4baf88152344b465eeeb1b7f6dce5"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Jan 25 19:30:18 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Jan 27 13:37:56 2017 -0800"
      },
      "message": "MIPS: Refactor code for unresolved field entrypoint.\n\nThis is a follow-up to\nhttps://android-review.googlesource.com/#/c/325423/.\n\nTest: booted MIPS32R2 in QEMU\nTest: test-art-target-run-test-optimizing in QEMU\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-run-test-optimizing\n      (MIPS64R6 and MIPS32R6) in QEMU\n\nChange-Id: Ie663ecf0489e7b182434708bef71686df5f37273\n"
    },
    {
      "commit": "12f1b99775bbf7dd82d0a897587ab6ed0e75ee22",
      "tree": "f8cb3a7334652e59577b7ff97a1805d1bf4ddd94",
      "parents": [
        "d8f6e6430b26bf199f4a52f0624becb7c29f3c19"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 19 18:00:45 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 27 10:04:05 2017 -0800"
      },
      "message": "Remove alignment bits in between stack maps\n\nSaves 0.65% of boot.oat size, probably similar on apps. Added\nBitMemoryRegion to avoid requiring adding state to StackMap. Added\ntest to memory_region_test.\n\nTest: clean-oat-host \u0026\u0026 test-art-host\n\nBug: 34621054\n\nChange-Id: I40279c59e262bd5e3c6a9135f83e22b5b6900d68\n"
    },
    {
      "commit": "d8f6e6430b26bf199f4a52f0624becb7c29f3c19",
      "tree": "1b8970d32b9d1a41fe2e3c1496771c073eebca3a",
      "parents": [
        "f919e8933cdcabbb5769f598a1022d27d0117f67",
        "d0b51838d5cbec18a9b3a6de7bd9bd2a7a3905d5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 27 16:42:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 16:42:57 2017 +0000"
      },
      "message": "Merge \"Don\u0027t use VIXL\u0027s temp registers in LocationsBuilderARM64::HandleFieldGet.\""
    },
    {
      "commit": "f919e8933cdcabbb5769f598a1022d27d0117f67",
      "tree": "24d60a235028efc99f7b07f899b0e590ebc7a471",
      "parents": [
        "73fa5f68c403301205721c7c94095a64c35d5c48",
        "9aee2d4ce6ce01cd4f27559588b50076f3915e2d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 27 15:31:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 15:31:28 2017 +0000"
      },
      "message": "Merge \"Add ARM support for `floor` and `ceil` intrinsics.\""
    },
    {
      "commit": "f255be763cd15b78da7891879ec44bd37871eeaf",
      "tree": "52ff95413b58d0b2dc4d34f8329c6e59084d3831",
      "parents": [
        "ca21dc47adeed92a15a9d3fd090bdd0e6654679c",
        "86e9d26921d669de6b6b7802517f6b4aabaf5137"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 27 15:08:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 15:08:50 2017 +0000"
      },
      "message": "Merge changes from topic \u0027VIXL-update-270117\u0027\n\n* changes:\n  ARM: VIXL32: Keep jump table base label within range of adr.\n  ARM64: VIXL: Fix breaking changes to ternary operator with Register inputs.\n"
    },
    {
      "commit": "d0b51838d5cbec18a9b3a6de7bd9bd2a7a3905d5",
      "tree": "4304574849efa0b36c19b2e122d29ac67d0dd59a",
      "parents": [
        "fbf47ea64a9f797a82030e919fa4f085c9eb5b28"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 26 19:04:23 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 27 13:31:09 2017 +0000"
      },
      "message": "Don\u0027t use VIXL\u0027s temp registers in LocationsBuilderARM64::HandleFieldGet.\n\nBefore this CL, when emitting a volatile field load with a\nlarge offset, it was possible to deplete the pool of VIXL\nARM64 temporary registers (IP0, IP1) in the concurrent\ncollector configuration.  To avoid this, we now request a\ntemporary register from the register allocator instead.\n\nTest: m test-art-target-run-test-635-checker-arm64-volatile-load-cc\nBug: 34726333\nChange-Id: Idf73a0306142c6133e259783aacaf7ad5401a2fd\n"
    },
    {
      "commit": "9aee2d4ce6ce01cd4f27559588b50076f3915e2d",
      "tree": "366a29555e74174fb31c5fc6ff4851f678416bce",
      "parents": [
        "ca21dc47adeed92a15a9d3fd090bdd0e6654679c"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jan 06 15:58:31 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jan 27 11:52:37 2017 +0000"
      },
      "message": "Add ARM support for `floor` and `ceil` intrinsics.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\n\nChange-Id: Ia6fe41ea912e32a73d78629c616bc64ad1ecfe66\n"
    },
    {
      "commit": "ca21dc47adeed92a15a9d3fd090bdd0e6654679c",
      "tree": "59aca3792abfa47c7424e4dac13248651e4662b2",
      "parents": [
        "67c60656639acc92dca2ae8713add7d22683c7b9",
        "e8fcd013493b800227bd7ea5f38f6cc27e9b90d1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 27 10:37:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 10:37:36 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"CHA for abstract methods.\"\"\""
    },
    {
      "commit": "86e9d26921d669de6b6b7802517f6b4aabaf5137",
      "tree": "714b784d029f230a7fd9ef1dddcc47277123ae19",
      "parents": [
        "79db99711f6b27f6ced6b7ed52c827f5211010a9"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Wed Jan 18 15:59:24 2017 +0000"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Jan 27 10:17:44 2017 +0000"
      },
      "message": "ARM: VIXL32: Keep jump table base label within range of adr.\n\nMacro assembler instructions between adr and the jump table base label\ncould cause literal pool or veneer emission, which would push the jump\ntable start out of adr range. Such a large emission is highly unlikely,\nbut possible, so prevent this by using an ExactAssemblyScope.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 test-art-target\nChange-Id: I46a038e452e197d73206b415376b5f2246388317\n"
    },
    {
      "commit": "79db99711f6b27f6ced6b7ed52c827f5211010a9",
      "tree": "f153b68f97eaa8f71e87f5978b82112544af0acf",
      "parents": [
        "e36c51aee58e61e9fc89851b767379c587f050e3"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Jan 19 14:08:42 2017 +0000"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Jan 27 10:17:44 2017 +0000"
      },
      "message": "ARM64: VIXL: Fix breaking changes to ternary operator with Register inputs.\n\nTest: mma art\nChange-Id: I33d1e05e47f337f1a9271b35dba9227057cda096\n"
    },
    {
      "commit": "055e7beb8a652d2600a19135d4d1ad0fa3e8d10d",
      "tree": "8ab012bf97857ca0b0aa952493abc1087c00e80f",
      "parents": [
        "cb7b5dfa0522cb234b6f2e4893ce21fd9c1a6cda",
        "b048cb74b742b03eb6dd5f1d6dd49e559f730b36"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 27 09:31:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 09:31:37 2017 +0000"
      },
      "message": "Merge \"Add per array size allocation entrypoints.\""
    },
    {
      "commit": "e8fcd013493b800227bd7ea5f38f6cc27e9b90d1",
      "tree": "16bf195a81dac7f66d513be7437a0a5c98dc2365",
      "parents": [
        "cb7b5dfa0522cb234b6f2e4893ce21fd9c1a6cda"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Jan 20 10:43:30 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jan 26 22:31:03 2017 -0800"
      },
      "message": "Revert \"Revert \"CHA for abstract methods.\"\"\n\nThis reverts commit 8ebc8bf055e8bd8f6f167e65a69cf4dae136db55.\n\nWhen we set the single-implementation method for an abstract method, it\nneed to be protected by the cha-lock.\n\nTest: new testcase and ART_TEST_JIT\u003dtrue m -j20 test-art-host-run-test\nChange-Id: I66acb20ffa7e49dd9c391f001e3bb52f961872e4\n"
    },
    {
      "commit": "6f04628765d738b648c1f9bccdebd4b2704314cd",
      "tree": "aec2e7d7e8b9da02afcf627ebe2c08157851a2a0",
      "parents": [
        "e38436063fb4baf88152344b465eeeb1b7f6dce5",
        "a72859d58e9d18db4a9e33ecca6902d8594266b0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 23:25:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 23:25:13 2017 +0000"
      },
      "message": "Merge \"You shall know your arm32 calling conventions.\""
    },
    {
      "commit": "a72859d58e9d18db4a9e33ecca6902d8594266b0",
      "tree": "27e7a225387cd51efd95cb89ffc7b13b347815bb",
      "parents": [
        "5b3c6c0fcca76d82a4c9acb03f7714457ae53dd9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 22:47:27 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 22:50:25 2017 +0000"
      },
      "message": "You shall know your arm32 calling conventions.\n\n64bit values are passed starting an even register.\n\ntest: ./art/test/run-test --no-relocate 529-checker-unresolved\n\nChange-Id: Ic3012f34898702b48fdab4d7a77dfdd4c2a1d916\n"
    },
    {
      "commit": "8e0e7f78431d7c6fcdaa8e0f8de9ea130a265d53",
      "tree": "c156e098fd7a92e2c81d487b6e31a7b24e69eecd",
      "parents": [
        "334b51132a2fd1a396822a3aa80129224c94e721",
        "5b3c6c0fcca76d82a4c9acb03f7714457ae53dd9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 12:35:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 12:35:07 2017 +0000"
      },
      "message": "Merge \"Refactor code for unresolved field entrypoint.\""
    },
    {
      "commit": "5b3c6c0fcca76d82a4c9acb03f7714457ae53dd9",
      "tree": "e1678dcd577abb63391a0cfcbb27a69a0ac4e769",
      "parents": [
        "c9569731061e560cb56116255b00a49d6a5daeb8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 14:22:26 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 10:37:58 2017 +0000"
      },
      "message": "Refactor code for unresolved field entrypoint.\n\n- Do macro magic to avoid source code duplication.\n- Do not fetch the referrer from the assembly, but\n  from the C entrypoint instead.\n\nTest: test-art-host test-art-target\n\nChange-Id: Ib139c94bc8f74686640cad538ba75dc56fa00e1d\n"
    },
    {
      "commit": "8c7c4f16aed712907da55ce8bb59e7c8e23be37d",
      "tree": "437d20423b68185f99065c6da29740dd913a3abb",
      "parents": [
        "1ddaa2573e8ea7c69dd2015d6cfbd2021989c816"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 10:13:11 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 10:31:23 2017 +0000"
      },
      "message": "Update vixl/arm32 backend after new allocation entrypoint change.\n\nFix after https://android-review.googlesource.com/#/c/325419/\n\nSpotted by artem.serov@linaro.org. Thanks!\n\ntest: test-art-target with vixl/arm32\nChange-Id: I5fdb4836c80f98696b07a06f52919f33a6284fbc\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": "22aa54bf8469689c7c6c33f15ff4df2ffba8fa15",
      "tree": "14204d55784dce3ffdd2641382a763afee85ced0",
      "parents": [
        "8116003cc9dd1e74fac1682eec547b8bb0afb061"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Oct 18 09:32:29 2016 +0100"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Jan 25 14:25:20 2017 +0000"
      },
      "message": "AArch64: Add HInstruction scheduling support.\n\nThis commit adds a new `HInstructionScheduling` pass that performs\nbasic scheduling on the `HGraph`.\n\nCurrently, scheduling is performed at the block level, so no\n`HInstruction` ever leaves its block in this pass.\n\nThe scheduling process iterates through blocks in the graph. For\nblocks that we can and want to schedule:\n1) Build a dependency graph for instructions. It includes data\n   dependencies (inputs/uses), but also environment dependencies and\n   side-effect dependencies.\n2) Schedule the dependency graph. This is a topological sort of the\n   dependency graph, using heuristics to decide what node to schedule\n   first when there are multiple candidates. Currently the heuristics\n   only consider instruction latencies and schedule first the\n   instructions that are on the critical path.\n\nTest: m test-art-host\nTest: m test-art-target\n\nChange-Id: Iec103177d4f059666d7c9626e5770531fbc5ccdc\n"
    },
    {
      "commit": "e36c51aee58e61e9fc89851b767379c587f050e3",
      "tree": "b2119a04dfcd776a61a6a0b148e3cffb08c8a087",
      "parents": [
        "c827f29ee77d459cea67d3bcf3ca1e50378e88f7",
        "133719e01111cea9d4919df4e8e90b5c51f7ad5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 24 08:55:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 08:55:15 2017 +0000"
      },
      "message": "Merge \"Allow multiple HX86ComputeBaseMethodAddress.\""
    },
    {
      "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": "133719e01111cea9d4919df4e8e90b5c51f7ad5a",
      "tree": "6b0edefdbbf4201146d7cf2ff82e365e39dc8017",
      "parents": [
        "5e821602426718bf971c3d693c3f8ff15d85017d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Jan 22 15:44:39 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 23 16:09:26 2017 +0000"
      },
      "message": "Allow multiple HX86ComputeBaseMethodAddress.\n\nSo that even graphs with irreducible loops can use it\nand avoid loading methods/classes/strings through KDexCacheViaMethod.\n\nTest: test-art-host\nChange-Id: I14109cfdc82347a7af420ca0ee55172ec37ca8ef\n"
    },
    {
      "commit": "5e8d5f01b0fe87a6c649bd3a9f1534228b93423d",
      "tree": "a1441acc0021d170f412542ae2a1ae62794e7846",
      "parents": [
        "b0dde4397fa5b0756312b46bd18477a2c1f6a7da"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 18 18:03:43 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 23 15:50:01 2017 +0000"
      },
      "message": "Fix some typos in ART.\n\nTest: m build-art-host\nTest: m cpplint-art\nChange-Id: Ifc6ce3d0d645c4a8dca72dd483fc03fc05077130\n"
    },
    {
      "commit": "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": "8ebc8bf055e8bd8f6f167e65a69cf4dae136db55",
      "tree": "4cc89efe98ddc6ef0421405affafce95c5aabae2",
      "parents": [
        "ae6c189b9d63ca4c2ae0e952187819c5e442e3c9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 20 17:37:02 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 20 17:37:50 2017 +0000"
      },
      "message": "Revert \"CHA for abstract methods.\"\n\nThis reverts commit ae6c189b9d63ca4c2ae0e952187819c5e442e3c9.\n\nThis is causing sporadic build failures with:\ndex2oatd F 01-20 15:05:33 8343 10164 cha.cc:292] Check failed: method_in_super-\u003eHasSingleImplementation() \n\nChange-Id: I4435ab028d3f7893e18b44347f294326c573a255\n"
    },
    {
      "commit": "ae6c189b9d63ca4c2ae0e952187819c5e442e3c9",
      "tree": "beb13f852a0e1b3a7867dfd9d64e962d3cb403fb",
      "parents": [
        "a8b4390a3b817a455b0abdf575922fea6182170d"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jan 05 13:46:36 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jan 19 10:49:08 2017 -0800"
      },
      "message": "CHA for abstract methods.\n\nAdd the ability to devirtualize abstract method invocation if\nan abstract method has only one implementation. Only support in JIT\nmode currently.\n\nTest: new testcase and ART_TEST_JIT\u003dtrue m -j20 test-art-host-run-test\nChange-Id: I43da03a9fa9a73840f5eaf207c6611e0913a7f66\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": "b0355130e38034db6b904783a00f74a3524e1881",
      "tree": "3aa9cbf5f2c99484c427900bb2ffd2c295917d59",
      "parents": [
        "0157eee15c1c2398c2b42433b7a094e319cb7935",
        "fee255039e30c1c3dfc70c426c3d176221c3cdf9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 19 03:37:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 19 03:37:12 2017 +0000"
      },
      "message": "Merge \"Revert \"Load the array class in the compiler for allocations.\"\""
    },
    {
      "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": "c3b7bf3bcc55ec3c684210176ff6ddeb9d33ac19",
      "tree": "e35684d252ac9ff1f505f142f2ce62289e74ae93",
      "parents": [
        "2ee01bff00e386c4bb315e148bac745613cbb7a3",
        "cc99df230feb46ba717252f002d0cc2da6828421"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 15:43:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 18 15:43:08 2017 +0000"
      },
      "message": "Merge \"Load the array class in the compiler for allocations.\""
    },
    {
      "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": "404b0120615fd4590bc51b506074c2dc19d48a65",
      "tree": "ee5dc4db783f67fa83e0ba36fc84f052ac6b8d60",
      "parents": [
        "4507fdcb70bd570d5f3968061bf991f0a1233a93",
        "af35a25df922e21c04e323c81fac1fa7c5fc7bee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 14:28:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 18 14:29:00 2017 +0000"
      },
      "message": "Merge \"Fix IP register usage in LoadClassSlowPathARMVIXL.\""
    },
    {
      "commit": "af35a25df922e21c04e323c81fac1fa7c5fc7bee",
      "tree": "97277a14ac47d681fe09c91951768c11b386da49",
      "parents": [
        "4ca818c31cc38746332e68a89ca48be88aa9d7b6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 18 12:54:44 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 18 13:01:55 2017 +0000"
      },
      "message": "Fix IP register usage in LoadClassSlowPathARMVIXL.\n\nRequest a temporary from a UseScratchRegisterScope instead\nof explicitly specifying the IP register to avoid assetion\nfailure in VIXL.\n\nTest: Build aosp_flounder-userdebug with ART_USE_VIXL_ARM_BACKEND\u003dtrue\nBug: 34340177\nBug: 30627598\nChange-Id: Ie39fbbb66165d752634cde8d2963129641558b93\n"
    },
    {
      "commit": "a3974581751cd73a896f7c4fcab71beb17c4f9dc",
      "tree": "66bcf219ae6cf6ab50793c7ea9e233e4061ab28d",
      "parents": [
        "c66a76f94ec823d2021879ab6f4a1934a2274ace",
        "942fd3130254d8276cbfe8e6201825e9c49e9b2c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 18 10:52:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 18 10:52:21 2017 +0000"
      },
      "message": "Merge \"Reduce using ArtMethod\u0027s dex_cache_resolved_types_.\""
    },
    {
      "commit": "942fd3130254d8276cbfe8e6201825e9c49e9b2c",
      "tree": "62dbcd85ab150604e2d72a3c2d0c3639a28c9b7a",
      "parents": [
        "8bd59a0fd46db83616785168231e09fb95ed2ead"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 16 20:52:19 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 17 16:12:15 2017 +0000"
      },
      "message": "Reduce using ArtMethod\u0027s dex_cache_resolved_types_.\n\nAvoid using the ArtMethod\u0027s dex cache type array shortcut\nin runtime, preparing for its removal. We do not completely\nremove the shortcut yet because it is still used by array\nallocation entrypoints.\n\nFix ArgArray::BuildArgArrayFromObjectArray in reflection.cc\nto not ask for the parameter type to be resolved. It should\nhave been previously resolved when retrieving the Method.\n\nAlso partially revert\n    https://android-review.googlesource.com/310717\nbecause it relied on the removed AIOOBE check in the removed\nArtMethod::GetDexCacheResolvedType(). The removed check was\nsimply defensive but it could not be triggered without some\nmemory corruption.\n\nTest: m test-art-host\nBug: 30627598\nChange-Id: Ic45a5ff8c66b79429e440cbc08d67bf22a083682\n"
    },
    {
      "commit": "1ea9efcbd22127b75865f9a7c2949e20f5553744",
      "tree": "983395f1b543939dc5672deab04a6cfc502ba462",
      "parents": [
        "dcc7ab628c9d59bfab203ab752ff7e11bfd60181"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 16 22:57:39 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 17 14:17:46 2017 +0000"
      },
      "message": "Acquire the mutator lock before comparing classes/strings.\n\nScratch my initial thought we woudldn\u0027t need it because the\nhandlescope is visited during the pause: as the compiler thread\nis in state native, the GC can concurrently update the handlescope,\nleading to false negatives when doing class/string equality.\n\nbug:34240874\ntest: test-art-host gcstress\nChange-Id: Icda0722fb49300a7de57e1c5d1efaa9e8dbda83f\n"
    },
    {
      "commit": "dcc7ab628c9d59bfab203ab752ff7e11bfd60181",
      "tree": "b37f3f978c06d4205145eab948d51f86560f64b0",
      "parents": [
        "9748d3d2094c1d3c443a350cf12b9d77b4c4d1e3",
        "5247c08fb186a5a2ac02226827cf6b994f41a681"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 17 10:25:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 17 10:25:57 2017 +0000"
      },
      "message": "Merge \"Put the resolved class in HLoadClass.\""
    },
    {
      "commit": "e037a736be43c1e8ba9340dcbf1d17722356a37b",
      "tree": "f0bc7b4a78d04376b042046afbfd0677d766b523",
      "parents": [
        "db54cc42859a8cc24ed1cda7f9b2f64b27dcb34a",
        "5d37c152f21a0807459c6f53bc25e2d84f56d259"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 17 09:16:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 17 09:16:31 2017 +0000"
      },
      "message": "Merge \"Put inlined ArtMethod pointer in stack maps.\""
    }
  ],
  "next": "db54cc42859a8cc24ed1cda7f9b2f64b27dcb34a"
}
