)]}'
{
  "log": [
    {
      "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": "1a5bfdc22bc3d659cf8ea7077151972725ef093c",
      "tree": "e05eedc8dbcb15fec373a0b52626dadbe9c41dc3",
      "parents": [
        "d12f04cb563432c1c072c7446255c57ec2f8db53",
        "58c3f6a0d15a4340c0a11ab7fbc8c4b990c64b77"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 06 22:06:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 06 22:06:06 2016 +0000"
      },
      "message": "Merge \"Reduce calls to DescriptorEquals\""
    },
    {
      "commit": "58c3f6a0d15a4340c0a11ab7fbc8c4b990c64b77",
      "tree": "18788ed5f6ffb44679acaee8faff9a5caf237f13",
      "parents": [
        "e4cdd4dbcbc75e373917d22214cd431643cd3610"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 01 14:21:11 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 06 11:01:52 2016 -0800"
      },
      "message": "Reduce calls to DescriptorEquals\n\nStore the low 3 bits of the descriptor hash inside of class set\nentries. Compare these bits before comparing descriptors.\n\nSimpleperf interpret-only compile of facebook:\nmirror::Class::DescriptorEquals(char const*): 3.66% -\u003e 1.03%\n\nBug: 32641252\n\nTest: test-art-host\n\nChange-Id: I8d898d4ac7c95383c49401fbcd85bfde226e026c\n"
    },
    {
      "commit": "6746874b84a44ab8dff18457eec546a1ebb22e93",
      "tree": "8181bea8942339ff170518ec6cbdc5a91b11aba1",
      "parents": [
        "c6f27ac5f486247e99096c88789314bc36dab33f",
        "c071a01a26013ab6e3dbfc4131efa95a65aeb4ed"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 06 17:09:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 06 17:09:58 2016 +0000"
      },
      "message": "Merge \"Added geometric induction variables analysis.\""
    },
    {
      "commit": "1d0ae3f849aa1825cdb50e4a304652b0d2ad80ed",
      "tree": "91e1238b832e9332259fdd3216a427b0e266b765",
      "parents": [
        "d1aa2912f3acdd9f47acd98e947818b09c2b349a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 06 13:40:16 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 06 14:05:20 2016 +0000"
      },
      "message": "Fix two tests after vdex change.\n\n- Clear entries of verification results, to avoid hitting a\n  DCHECK while running verifier_deps_test\n- Backlist 629-vdex-speed for relocate-npatchoat, as the test\n  needs compiled code.\n\ntest: verifier_deps_test, 629-vdex-speed\nbug: 30937355\nChange-Id: I9788599dafcbfe63522c58f85692601466d191db\n"
    },
    {
      "commit": "cce05bd825818a0b841c9558906c4c38fbf49825",
      "tree": "c58e609e39809313a189c441815961b5d28045a8",
      "parents": [
        "5677d9a8154ebff246b6c6ce4ef64707a3368ed8",
        "374ddf34753e5cbd122ac67ddb5551d83d0d1fb6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 06 10:07:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 06 10:07:06 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Clean usage of scopes.\""
    },
    {
      "commit": "5677d9a8154ebff246b6c6ce4ef64707a3368ed8",
      "tree": "54b69d6e8d49ecdd8aa59769685feb532be1ac4a",
      "parents": [
        "2eace9c1323060ee4f42d67cba9c1fd068c6a2b3",
        "d4cc5b2127894475160b5d2bba9791dd21af5953"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 06 10:06:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 06 10:06:49 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch.\""
    },
    {
      "commit": "c071a01a26013ab6e3dbfc4131efa95a65aeb4ed",
      "tree": "bbe75527b8ee94483e4d797c6b2372adaabd81cf",
      "parents": [
        "5eb1e1e7341f4e7febf77c04f8649a9566b31c03"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Dec 01 10:22:31 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Dec 05 16:16:42 2016 -0800"
      },
      "message": "Added geometric induction variables analysis.\n\nRationale:\nInformation on geometric and polynomial (coming soon) sequences\nare nice to have to further enhance BCE and last-value assignment.\n\nTest: test-art-host\nChange-Id: Ib5e2998c3eb1009def6fd00b82935da7c3ba7c6e\n"
    },
    {
      "commit": "374ddf34753e5cbd122ac67ddb5551d83d0d1fb6",
      "tree": "6da27c8768a98dac697bbebf3fddf2434bd0acec",
      "parents": [
        "d4cc5b2127894475160b5d2bba9791dd21af5953"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Nov 04 10:40:49 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 05 14:28:19 2016 +0000"
      },
      "message": "ARM: VIXL32: Clean usage of scopes.\n\nUse scopes in more places where they are semantically required.\nThere are still places where we should use scopes, but do not yet.\nThose are marked with new `TODO` comments. Practically everything\nworks fine (see comments for details), but we eventually should fix\nit.\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: I5bdc710d32f0b9476eee92b31f2ff9d874e26f63\n"
    },
    {
      "commit": "51c17faee9ff0b93914ae2d308cfa24f0bc71d0a",
      "tree": "84db285eec16e04dd5c14ce3138521dfcfcf1e4b",
      "parents": [
        "3d32bf0b1e9469ffcb7fd7793d56d0193e1d5d5c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 15:56:12 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 05 13:12:17 2016 +0000"
      },
      "message": "Create empty VerifiedMethod after vdex verification.\n\nThe compiler and quicken require the existence of a\nVerifiedMethod for compiling a method.\n\nThis fixes the regression of not doing any compilation when\npassed --input-vdex.\n\nTest: 629-vdex-speed\n\nChange-Id: Ie65578eadd09099df1c1a403d96c15e5da78a901\n"
    },
    {
      "commit": "d4cc5b2127894475160b5d2bba9791dd21af5953",
      "tree": "04120b6077cacb5d16cb40161dfddd6170d8a64e",
      "parents": [
        "3acf36142594f0afb60e2eef82fdfab1b17b2463"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Nov 04 11:19:09 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 05 13:01:29 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch.\n\nImplemented dispatch optimizations for InvokeStaticOrDirect,\nLoadClass, LoadString (excluding cases that use Literals).\nPerformed a cleanup of VIXL backend.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 \\\n      mma test-art-host dist \u0026\u0026 mma test-art-target dist\n\nChange-Id: Ib37a6b7e7657196b13caec999d190be747857c1d\n"
    },
    {
      "commit": "3acf36142594f0afb60e2eef82fdfab1b17b2463",
      "tree": "3447e2af8ac87bfde6c33095290cc109486d5937",
      "parents": [
        "3bdc662e713289655c744c7ba3d3e5316b276c45",
        "f54e5df37cb42d9a83fc54b375da5ef335d604a9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 05 10:08:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 05 10:08:08 2016 +0000"
      },
      "message": "Merge \"Set the location checksum in vdex.\""
    },
    {
      "commit": "cc1b5357f83f0b787d51fbfde3fe870c8a2fa050",
      "tree": "253d23dba63e1003dc8e953002b994d01c97f181",
      "parents": [
        "5d0c3009fc56afdb4aeae5ee6dd98c3d1d2e7711"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 01 16:58:38 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 02 14:00:22 2016 -0800"
      },
      "message": "ART: Clean up ClassLinker\n\nTry to clean up and simplify ClassLinker.\n\nMove dex_lock to Locks. Remove dead code. Move single-use\ncode to user. Hide implementation details from header.\n\nTest: m test-art-host\nChange-Id: I58150fa9c2a9524f8304370270c2197d655cb3a8\n"
    },
    {
      "commit": "5d0c3009fc56afdb4aeae5ee6dd98c3d1d2e7711",
      "tree": "23dfec1a50eabc7e67f24520f81c8a6813454036",
      "parents": [
        "9d7ae2eaa232d41b3aba22009c9ad263ee1d0480",
        "8a4252e44c7fabca4952b4c8eb9c16912fb7afa6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 02 16:32:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 02 16:32:43 2016 +0000"
      },
      "message": "Merge \"ART: Fix typo in IsCallerSave\""
    },
    {
      "commit": "8a4252e44c7fabca4952b4c8eb9c16912fb7afa6",
      "tree": "de40cb96211ed50d41e58c0fb23709cd0927432a",
      "parents": [
        "54b20eb52f7d8688032fb3bd6112e8db9772c4a7"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Mon Aug 15 07:56:41 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 02 16:32:22 2016 +0000"
      },
      "message": "ART: Fix typo in IsCallerSave\n\nCorrectly refer to floating point registers, if necessary. This\nensures that we correctly start allocating caller-save FPRs.\n\nBug: 31275200\nTest: ART_TEST_OPTIMIZING_GRAPH_COLOR\u003dtrue m test-art-host\nChange-Id: I420b66f0a000636e8370c739003de3cf53af3e30\n"
    },
    {
      "commit": "d0f081ecbdf0e932b98c54e5f51ba3614c7a69e0",
      "tree": "82955f9141078b25576f342d7f3cacd0a984c68e",
      "parents": [
        "edcd7929e2bf521316fa5305109c330d563d87db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 01 19:32:26 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 01 20:05:07 2016 -0800"
      },
      "message": "ART: Delete unnecessary ScopedObjectAccess\n\nThis isn\u0027t protecting or serializing anything. Reduces\ndex2oatd compile time.\n\nTest: m test-art-host\nChange-Id: I8e6d1579578740b526070ba784b81bd0590e84b1\n"
    },
    {
      "commit": "141c6f68d47e9312e3c27aa6dcd3ae510e7e19c7",
      "tree": "727e5e4976b8ad53a536c3ca32b04f97359d8e90",
      "parents": [
        "e20fe27a2846d13a1893ee8e1cbc9d950148c27d",
        "063fc772b5b8aed7d769cd7cccb6ddc7619326ee"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 23:28:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 23:28:54 2016 +0000"
      },
      "message": "Merge \"Class Hierarchy Analysis (CHA)\""
    },
    {
      "commit": "f54e5df37cb42d9a83fc54b375da5ef335d604a9",
      "tree": "dd69e9eeffd3a021ffb4cc732f75138369d0002e",
      "parents": [
        "626b839f881f09a1481377a76712d08580c47a16"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 01 10:45:08 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 01 22:58:41 2016 +0000"
      },
      "message": "Set the location checksum in vdex.\n\nThe checksum we check against at runtime isn\u0027t the dex checksum\nif we are compiling a jar/apk, but the crc32 of the entry.\n\nThis is to optimize the check at startup and avoid reading the\ncontents of the zip file.\n\nBecause with vdex we do not want to open the zip file, (the test\nhas been done already in getDexOptNeeded), and cannot rely\non the .oat file for fetching it, put the location checksum in\nthe vdex directly.\n\nNote for later refactorings: the dex checksum location is now\nin the vdex file, but also in the oat file. This can be revisited\nafter we eventually cleanup OatDexFile.\n\nTest: 629-vdex\nbug: 30937355\nChange-Id: I7af8ca63b889370c660d694dd4eb95e78f566a1c\n"
    },
    {
      "commit": "5eb1e1e7341f4e7febf77c04f8649a9566b31c03",
      "tree": "59a875dd1c53af0d405a10daff312b6e4053b082",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191",
        "be44dcf6b2338782c276483c6c79a4ab17ca98a9"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 19:59:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 19:59:51 2016 +0000"
      },
      "message": "Merge \"Add LoadString kind of kJitTableAddress for dump-cfg.\""
    },
    {
      "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": "2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8",
      "tree": "7b5e29f66a840e5e83c02df0b23d05501b0d63c5",
      "parents": [
        "6afaa42f50157095a3cdc742afdbc3d58b833eea"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:42:00 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:43:09 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved, try again.\"\n\nReverting due to test failures as expected.\n\nBug: 30627598\nBug: 33231647\n\nThis reverts commit cb5ab35980a86b05586c402924d2e7ca9df25758.\nSquashed revert \"Additional debug logging for bug 33231647.\"\n    This reverts commit 00a441033db28d243fc33692d30eb2755fa81728.\n\nChange-Id: I0c0ee1f70d47540fec99f8a797ce13571c16147c\n"
    },
    {
      "commit": "00a441033db28d243fc33692d30eb2755fa81728",
      "tree": "8b9897d17a70aa231a901d6b3cf9432091e98a92",
      "parents": [
        "903691455319f72219853a46340b59c9b89b7553"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 14:40:02 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 15:44:19 2016 +0000"
      },
      "message": "Additional debug logging for bug 33231647.\n\nBug: 33231647\nTest: m test-art-host\nChange-Id: I5847ce92be5f588852e04ff44fe6eca19f363b93\n"
    },
    {
      "commit": "903691455319f72219853a46340b59c9b89b7553",
      "tree": "42f33b1e3b949fcd8246f34877b46a304bb36dfe",
      "parents": [
        "982e0bf9ed2b00ef85b328de674e28342eb0b2dd",
        "cb5ab35980a86b05586c402924d2e7ca9df25758"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 01 12:11:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 12:11:07 2016 +0000"
      },
      "message": "Merge \"Make sure that const-class linkage is preserved, try again.\""
    },
    {
      "commit": "cb5ab35980a86b05586c402924d2e7ca9df25758",
      "tree": "acf33ce7ac7627682aaf822489247ca1804b60d0",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 30 15:31:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 10:13:19 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved, try again.\n\nThis CL causes occasional test failures on the build servers\nwhich we were not able to reproduce locally. So we add some\nsome additional debug output to help pinpoint the cause.\n\nBug: 30627598\nBug: 33231647\nTest: m test-art-host\n\nThis reverts commit 171cf811a1cdf8b1cbc5151505d8630741ce4cf3.\n\nChange-Id: Id56a3f0e86e8212fd547e09c61794401bff47fb0\n"
    },
    {
      "commit": "982e0bf9ed2b00ef85b328de674e28342eb0b2dd",
      "tree": "168a1d48469c072794ef2adf441d80a85cf827a7",
      "parents": [
        "85b38bd1fdf4a3aaf073e0aa1f901271b7bab338",
        "657022c0881720fea6871a7b26b49ba4ae74bbd9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 01 09:12:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 09:12:32 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: A couple of fixes to have more tests passing.\""
    },
    {
      "commit": "2ba0c377ec9e6cb9d59dbafdacc363b8a44e46c4",
      "tree": "4e7ab7fa07e2275da3015b2d5fe39513a836db93",
      "parents": [
        "679ba8d5d53b5577f571b51af17e263abd05e760",
        "acab8d485bd9c007b991f482ed01264d527b63d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 01 02:02:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 02:02:44 2016 +0000"
      },
      "message": "Merge \"Move compiled methods to use AtomicMethodRefMap\""
    },
    {
      "commit": "679ba8d5d53b5577f571b51af17e263abd05e760",
      "tree": "0c13819fc3eccfba307d5a642e1260685d5626bf",
      "parents": [
        "0fd9a7d67878d1d88a74895c0d02c556b5de8e72",
        "71bf7b43380eb445973f32a7f789d9670f8cc97d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 01 00:45:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 00:45:28 2016 +0000"
      },
      "message": "Merge \"Optimizations around escape analysis. With tests.\""
    },
    {
      "commit": "be44dcf6b2338782c276483c6c79a4ab17ca98a9",
      "tree": "21f97e74dafb37f9a0382e30a6b0fea18f570ddb",
      "parents": [
        "07ab8831ff6025f91f927cc9e60c04801583666c"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 30 14:17:32 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 30 14:29:58 2016 -0800"
      },
      "message": "Add LoadString kind of kJitTableAddress for dump-cfg.\n\nTest: manual\n\nChange-Id: Ifcae7b26f666930766635d8b3ed7a495494cddf7\n"
    },
    {
      "commit": "71bf7b43380eb445973f32a7f789d9670f8cc97d",
      "tree": "76425f8578b247a845fe61724d71efc63059760f",
      "parents": [
        "52f52361c2ea37941fbda71e3c653bb8096bf516"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 16 10:17:46 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 30 13:21:21 2016 -0800"
      },
      "message": "Optimizations around escape analysis. With tests.\n\nDetails:\n(1) added new intrinsics\n(2) implemented optimizations\n      more !can be null information\n      more null check removals\n      replace return-this uses with incoming parameter\n      remove dead StringBuffer/Builder calls (with escape analysis)\n(3) Fixed exposed bug in CanBeMoved()\n\nPerformance gain:\nThis improves CafeineString by about 360%\n(removes null check from first loop, eliminates second loop completely)\n\nTest: test-art-host\n\nChange-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1\n"
    },
    {
      "commit": "acab8d485bd9c007b991f482ed01264d527b63d6",
      "tree": "fb18b6151ac3556f2baf8ac326edebb92c0991b8",
      "parents": [
        "392fb010a71b99fdb6a67929cb97171e97523b13"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 23 13:45:58 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 13:09:14 2016 -0800"
      },
      "message": "Move compiled methods to use AtomicMethodRefMap\n\nUse AtomicMethodRefMap to avoid locking and map costs.\n\nNative RAM usage for interpret-only compile FB:\n71270192B -\u003e 64117168B\n\nPerf:\nCompilerDriver::GetCompiledMethod: 0.88% -\u003e 0.04%\nMutex::ExclusiveLock: 1.55% -\u003e 1.05%\n\nBug: 32641252\n\nTest: test-art-host-run-test\n\nChange-Id: I146e7bf2f3328b4fa84f2cc19d591f4da82dccfc\n"
    },
    {
      "commit": "392fb010a71b99fdb6a67929cb97171e97523b13",
      "tree": "f68dc5d8e6be36ede980ff75678ff550546b46d5",
      "parents": [
        "211fd802903c130ed1c47c18d1b87809d290aa69",
        "9df8931359953803441accaa124ca454a33917dc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 19:40:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 19:40:48 2016 +0000"
      },
      "message": "Merge \"Add atomic method reference map\""
    },
    {
      "commit": "9df8931359953803441accaa124ca454a33917dc",
      "tree": "8cd904585a4cdc10e64f8419b651e7c9be5ce521",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 23 13:28:16 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 19:07:20 2016 +0000"
      },
      "message": "Add atomic method reference map\n\nLess RAM usage and faster than using a normal map with\nMethodReference. Speed is faster by avoiding locking and tree\ntraversal. RAM usage is lower since the map usually had a value\nfor most method references.\n\nPlan on using for marking methods for dex2dex, storing compiled\nmethods. Also use the new map for VerifiedMethods (refactoring).\n\nAdded test.\n\nBug: 32641252\n\nTest: test-art-host-run-test\n\nChange-Id: I46268031b8e0daf9be3597145cf6ecf579a039e2\n"
    },
    {
      "commit": "211fd802903c130ed1c47c18d1b87809d290aa69",
      "tree": "e049fbad2dd7fbf244d5163e084be339f02fc8d7",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078",
        "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::StringIndex\""
    },
    {
      "commit": "657022c0881720fea6871a7b26b49ba4ae74bbd9",
      "tree": "a70c0c65d74d566a031f2adc6d271d5ebb904203",
      "parents": [
        "725466c0207d4b3d997633f5c321adee2dcd5483"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 23 14:19:38 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 30 17:31:36 2016 +0000"
      },
      "message": "ARM: VIXL32: A couple of fixes to have more tests passing.\n\nFix 103-string-append, CheckCast visitor, stop interpretting\nboot.oat, port Floating point compare optimization.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: I7e06f9bc1ec60a850a8fc4ef7a344b9cfc736033\n"
    },
    {
      "commit": "725466c0207d4b3d997633f5c321adee2dcd5483",
      "tree": "0dda746395e490e16a4209d0bca1c3a366ed19ea",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2",
        "8d2c459d3f694743ac6e75042d1cf9b1efb1194e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 15:49:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 15:49:41 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Implement HClassTableGet Visitor.\""
    },
    {
      "commit": "07e6a7947f3279f66f14f7af045065b5297294c2",
      "tree": "5798777d9d233585d74ee36e73c2a0555a1b7ee1",
      "parents": [
        "73209a4a64d40fb3a83a725e5929b232c89bcef8",
        "dda4396c4319b85f3d2c06136fea02aaad93a819"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 14:45:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 14:45:15 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix some test failures.\""
    },
    {
      "commit": "c9e2fc27c57d4c007d26081a8e60b244ecba8665",
      "tree": "cd59bdb099bf2342f4400c37cfbf6ea827a56632",
      "parents": [
        "9ebca690fdfb36fe1a689fd32c3d05d999497768",
        "e51ca8bfa8a193b64901ad214842f213adca92eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\""
    },
    {
      "commit": "ae7f6b965e15794b0014a0c1db5e1fcf9e841e5c",
      "tree": "5410febb548c7970d3966325e38a14d7a7d89002",
      "parents": [
        "ab191538a1d9eee6ec96bc3fa86dde36a007a6f5",
        "6287c238a56ef32f6614484eb8ec9bcc9b726a8e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 22:07:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 22:07:48 2016 +0000"
      },
      "message": "Merge \"ARM: Fix JNI MacroAssembler after VIXL update.\""
    },
    {
      "commit": "8fb28dcf0e83f7153e76e176671cd4ad1f20205b",
      "tree": "c658d6bf0cc0a92a3298ec79c6405015da3d7d98",
      "parents": [
        "8662aaaae4b63b02b2762673873b90b433b2eb2d",
        "171cf811a1cdf8b1cbc5151505d8630741ce4cf3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:11:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 21:11:33 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\"\""
    },
    {
      "commit": "171cf811a1cdf8b1cbc5151505d8630741ce4cf3",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "e47172b75b8b04a450d235cf72bdc4e223a29cb5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\"\n\nBug: 30627598\n\nThis reverts commit e47172b75b8b04a450d235cf72bdc4e223a29cb5.\n\nChange-Id: I038029c71195a80f041982e82ae556d3157db7b8\n"
    },
    {
      "commit": "e51ca8bfa8a193b64901ad214842f213adca92eb",
      "tree": "b07b2534edc592d68b5461a3bdb8a31241892d54",
      "parents": [
        "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:49:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:05:51 2016 +0000"
      },
      "message": "Move inline caches GC handling in JitCodeCache.\n\nMake the classes they hold weak references and visit\nthem during SweepJitRoots.\n\nThis fixes the newly introduced deadlock:\n\nThread1:\n1) Lock JitCodeCache lock to create Profiling info for\n  ArtMethod m.\n2) m is a copied method, we need to track the actual holder,\n   needing to decode a weak reference.\n3) Weak references are not accessible due to GC.\n\nGC Thread:\n- Disallow weak reference access.\n- Wait for checkpoint.\n\nThread2:\n- Try to lock JitCodeCache lock\n- Deadlock, as Thread1 owns the JitCodeCache lock.\n\nTest: test-art-host\nbug: 31289185\nbug: 33198826\n\nChange-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8\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": "6287c238a56ef32f6614484eb8ec9bcc9b726a8e",
      "tree": "092426b7fd3202eb00e5cbe80b18b96fc5ddf0c7",
      "parents": [
        "8662aaaae4b63b02b2762673873b90b433b2eb2d"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Nov 29 13:31:33 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 10:39:10 2016 -0800"
      },
      "message": "ARM: Fix JNI MacroAssembler after VIXL update.\n\nThis patch fixes an issue found here:\nhttps://android-review.googlesource.com/#/c/307532/\n\nAlso re-enables vixl MacroAssembler for arm.\n\nTest: export ART_USE_READ_BARRIER\u003dtrue; export ART_HEAP_POISONING\u003dtrue; \\\n      m test-art-host\nTest: export ART_USE_READ_BARRIER\u003dtrue; export ART_HEAP_POISONING\u003dtrue; \\\n      m test-art-target\nTest: dump-oat-boot with ART_USE_READ_BARRIER\u003dtrue\n\nChange-Id: I03e3014fb250791db2d24a0ab1a76ca96384c332\n"
    },
    {
      "commit": "8662aaaae4b63b02b2762673873b90b433b2eb2d",
      "tree": "9f97a8acb0f7cd32cc6bc936cfdfa09edeba64a9",
      "parents": [
        "52f52361c2ea37941fbda71e3c653bb8096bf516",
        "67986a15fa94d6740ba35f40a1ffdfef3245d2de"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 18:15:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 18:15:29 2016 +0000"
      },
      "message": "Merge \"Use non vixl arm macro assembler\""
    },
    {
      "commit": "67986a15fa94d6740ba35f40a1ffdfef3245d2de",
      "tree": "1975222e22270768c4cd9cfe303b0912d746bbbb",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 28 19:24:08 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 29 09:33:17 2016 -0800"
      },
      "message": "Use non vixl arm macro assembler\n\nThe VIXL one hits an assertion error for CC:\nexternal/vixl/src/aarch32/macro-assembler-aarch32.h:1386:\nvoid vixl::aarch32::MacroAssembler::Cmp(vixl::aarch32::Condition,\nvixl::aarch32::Register, const vixl::aarch32::Operand \u0026):\nAssertion `!AliasesAvailableScratchRegister(rn)\u0027 failed.\n\nFixes dump-oat-boot with CC.\n\nTest: test-art-target, N6P booting\n\nChange-Id: I781fe8c8c2d6cd8b246ee4509281d6c645c89a28\n"
    },
    {
      "commit": "ec428a7ab9d4fbfa03b852983811b3247867bb5d",
      "tree": "1036aaa8f6123419158f1562a5f51d164a713c8e",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759",
        "c5646201a858bd0744634515c057ace5149489ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 16:22:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 16:22:51 2016 +0000"
      },
      "message": "Merge \"ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics.\""
    },
    {
      "commit": "df743754f409788b5ea7f114d3d4171a6e036040",
      "tree": "604ed3b5e86d9f26ecc888257de3d322d014e7fd",
      "parents": [
        "ded461e9df57a9e36e82f665d9600f9ea588dd87",
        "e47172b75b8b04a450d235cf72bdc4e223a29cb5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 15:46:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 29 15:46:39 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\""
    },
    {
      "commit": "c5646201a858bd0744634515c057ace5149489ca",
      "tree": "b3ae881d28d5ffa91caaa7ec37931fd6899aff5b",
      "parents": [
        "5ee771615a7e7752abb8b0d53122ca44137c4286"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 28 16:03:15 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 14:49:27 2016 +0000"
      },
      "message": "ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics.\n\nTest: m test-art-target\nChange-Id: I7316dfc40555a3c47670a3b79b4c8fc0cd3edc4f\n"
    },
    {
      "commit": "e47172b75b8b04a450d235cf72bdc4e223a29cb5",
      "tree": "9301e9bc08944f3b4590d9ccf6aa7656cc238adf",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 25 11:47:20 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 13:49:20 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\n\nAvoid class loading triggered by verification in the\n626-const-class-linking test. Expect spurious wakeups.\n\nAdd extra debugging output for a very strange failure\n    image_writer.cc:1144] Check failed:\n    !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\nThat class is supposed to be in the boot image (core.art for\ntests), so the failing check should not be reached at all.\n\nTest: m test-art-host\nTest: m ART_TEST_OPTIMIZING\u003dtrue \\\n        ART_TEST_JIT\u003dtrue \\\n        ART_TEST_INTERPRETER\u003dtrue \\\n        ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue \\\n        test-art-host-run-test-626-const-class-linking\nBug: 30627598\n\nThis reverts commit 09ded9201fbeec605b12741ae255663c14bda225.\n\nChange-Id: I65a68cb53f0707b8abb3555ac3dc44c82907aef5\n"
    },
    {
      "commit": "96fd51d52de759be442accd4df99eb2520bdd023",
      "tree": "9d63b5bde1b8c32a0f5fefea789ebc81e5400268",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 11:22:35 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 13:27:36 2016 -0800"
      },
      "message": "Moved escape analysis to reusable module\n\nRationale:\nThis prepares other optimizations that\nwant to do some simple escape analysis.\nAlso introduces ability for client\nto inject a case-specific function.\n\nTest: test-art-host\nChange-Id: Ie38a1e24e4479dc40154673db589ec1c82fb73b9\n"
    },
    {
      "commit": "dda4396c4319b85f3d2c06136fea02aaad93a819",
      "tree": "a4cf329bd2680f71b394321c55d2b8128e2d6c9a",
      "parents": [
        "b77051ea5718fe017f2fa884b9ca4c8186c95190"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Nov 21 19:55:20 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Nov 25 14:18:30 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix some test failures.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: I6cc179a56c967fc35936a5743a953013a2388c90\n"
    },
    {
      "commit": "b77051ea5718fe017f2fa884b9ca4c8186c95190",
      "tree": "bb51782f8350be00195becabc3cd8758f15010a0",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Nov 21 19:46:00 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Nov 25 14:16:31 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix breaking changes from recent VIXL update.\n\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: I02a608bf51b889a2bfff43272a3619582bf9cf20\n"
    },
    {
      "commit": "d0111420a9f924fe560a97132d09ae531852fd69",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "c3076fed3c087460410422a412c2aab3ea685ed4",
        "f51bc62a1d89a35fabaaf7e766d49502881fd591"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 11:25:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 25 11:25:44 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Improve codegen on CBZ/CBNZ\""
    },
    {
      "commit": "c3076fed3c087460410422a412c2aab3ea685ed4",
      "tree": "70713730572018ca051d7100ee452852496f12fc",
      "parents": [
        "be8440c9f91d03b2ba6ae125649e3379938bfa00",
        "b0bbe8e5c28c061bf4ef4086d3bbb2c5c5266979"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 08:32:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 25 08:32:37 2016 +0000"
      },
      "message": "Merge \"Use input-vdex-fd, or input-vdex in dex2oat.\""
    },
    {
      "commit": "b0bbe8e5c28c061bf4ef4086d3bbb2c5c5266979",
      "tree": "843178c1845f734cb068fc9c3c3cf17badb79416",
      "parents": [
        "dd77c2b4ff36db082edfbcf2631c78a9282689e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 19 10:42:37 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 24 16:21:44 2016 +0000"
      },
      "message": "Use input-vdex-fd, or input-vdex in dex2oat.\n\ninput-vdex-fd is used by installd\ninput-vdex is used by run-tests, and (will be used by) go/lem\n\nThis change copies the contents of the passed vdex to the new one,\nunquicken the new vdex, and run the fast verification on the new\nvdex.\n\nbug:30937355\nTest: device boots, apps get updated faster with vdex\nTest: set TEST_VDEX to true in run-test-jar, run all tests\nTest: 628-vdex\n\nChange-Id: Idfbac4de411cebcf8ea7a6af7a417d7c7908dd72\n"
    },
    {
      "commit": "7b7a78e81128c30865b2b17a6f77bee286cbde74",
      "tree": "c8889679e5fd3cc2c95f483c35d3a065520c378a",
      "parents": [
        "4bb3c7fb33c3f8636e38884ddf023f2c9a39a413",
        "09ded9201fbeec605b12741ae255663c14bda225"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:05:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 24 13:05:13 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\""
    },
    {
      "commit": "09ded9201fbeec605b12741ae255663c14bda225",
      "tree": "c0276a06f8b6dba35e843098a05be326c8f5e2ac",
      "parents": [
        "25dcbad4462ea7279ee2bbe0884abc25bdfac77a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\n\n626-const-class-linking is failing (spurious wakeups?)\n970-iface-super-resolution-gen is failing:\n    dex2oatd F 11-24 10:57:16  6410  6410 image_writer.cc:1144]\n    Check failed: !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\n\nBug: 30627598\n\nThis reverts commit 25dcbad4462ea7279ee2bbe0884abc25bdfac77a.\n\nChange-Id: Ie010169bdde45e6ccf2e04a521da4682bd817114\n"
    },
    {
      "commit": "8d2c459d3f694743ac6e75042d1cf9b1efb1194e",
      "tree": "4b98feaae69b6d5a69eda7d3d1086b61718c44ad",
      "parents": [
        "4bb3c7fb33c3f8636e38884ddf023f2c9a39a413"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Nov 23 17:05:25 2016 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Nov 24 12:13:12 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement HClassTableGet Visitor.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: Ia334bff827a78966274dc2a80a2be8688240cadf\n"
    },
    {
      "commit": "f51bc62a1d89a35fabaaf7e766d49502881fd591",
      "tree": "eadb80d9e842476ed599a129a3babad27f7d2167",
      "parents": [
        "8f3435981e67e4b78caf0130f81dcd9a87af531e"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Fri Nov 04 09:23:32 2016 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Nov 24 11:39:20 2016 +0000"
      },
      "message": "ARM: VIXL32: Improve codegen on CBZ/CBNZ\n\nThis patch improves codegen on CBZ/CBNZ.\nCompareAndBranchIfZero/CompareAndBranchIfNonZero are introduced.\n\nThese two functions can generate CMP+Bcc or Cbz/Cbnz.\nCMP+Bcc are generated by default.\nIf a hint is given (is_far_target \u003d false) and rn and label\ncan all fit into Cbz/Cbnz, then Cbz/Cbnz is generated.\nPrefer these two interfaces to using vixl32::MacroAssembler::Cbz/Cbnz.\nIn T32, Cbz/Cbnz instructions have following limitations:\n- Far targets, which are over 126 bytes away, are not supported.\n- Only low registers can be encoded.\n- Backward branches are not supported.\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: I5d2ada19ea4f83dab78baf0cf78c72e99e58d946\n"
    },
    {
      "commit": "8f3435981e67e4b78caf0130f81dcd9a87af531e",
      "tree": "dc84bd0ff5cca4bfc7ba10398242846004158d43",
      "parents": [
        "4b600964fe89b962afe3c9ae783a255789db4411",
        "25dcbad4462ea7279ee2bbe0884abc25bdfac77a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 10:07:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 24 10:07:53 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\""
    },
    {
      "commit": "4b600964fe89b962afe3c9ae783a255789db4411",
      "tree": "f6508bcc09eb73cc8a4e7ec22b31e3b9667c72a5",
      "parents": [
        "b9bc47f0e24580a9dfafec830c709842b71aef89",
        "fc2dd6110c7ce5fc272836d1a7e48f3b40612c2d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 23 19:19:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 19:19:22 2016 +0000"
      },
      "message": "Merge \"Speed up verified methods\""
    },
    {
      "commit": "25dcbad4462ea7279ee2bbe0884abc25bdfac77a",
      "tree": "f8f8db090bf6735ead2c6999b7b574f4b7278056",
      "parents": [
        "dd77c2b4ff36db082edfbcf2631c78a9282689e1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 13:35:26 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 17:01:16 2016 +0000"
      },
      "message": "Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\n\nFix jdwp getting multiple instances of the same class.\nFix counting \"zygote\"/\"non-zygote\" classes in class table.\nFix FindClass() to EnsureResolved() classes added by\na racing thread to the class table.\n\nTest: m test-art-host\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug\nBug: 30627598\n\nThis reverts commit ecffc67068a28d55d131553bf915fdb9fafbbc03.\n\nChange-Id: I15807949da4f163c2693fac2fbfc274f17685f8a\n"
    },
    {
      "commit": "fc2dd6110c7ce5fc272836d1a7e48f3b40612c2d",
      "tree": "c61e6b98d487e4dccf4c66d755982cc9160ca345",
      "parents": [
        "0e5e9fd33521d0f9a2cc6551cb77b4b196e82082"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 21 15:05:23 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 16:49:21 2016 -0800"
      },
      "message": "Speed up verified methods\n\nSwitch to an array of atomic pointers instead of a map. Removes lock\nand map lookup. Also address comments from previous CL.\n\nGetVerifiedMethod: 1.59% -\u003e 0.18% of compilation time.\n\nInstall time seems to goes down by around 1%.\n\nAlso has significant RAM savings (FB host compile):\ndex2oat native alloc: 84695472B -\u003e 71268736B\n\nFor the JIT case, the old method is used to prevent any increase in\nRAM usage.\n\nBug: 32641252\n\nTest: test-art-host\nChange-Id: I47b4b8a4a3cb3f8ef23e36a888b8885e12168787\n"
    },
    {
      "commit": "f215c5255ce817e3baca7d71f8de72001f6dfbcd",
      "tree": "dd664dbbdc616a66cb9495a6b428b47ac6079611",
      "parents": [
        "47d840bcf9b2fe323f54f55dd3c675f9ec59c6a3",
        "042e898f18767ed326980e3b07d39adbf98f6222"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 23:49:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 23:49:20 2016 +0000"
      },
      "message": "Merge changes from topic \u0027dex2oat_dexlayout\u0027\n\n* changes:\n  Add layout scheme to dexlayout for dex file reordering.\n  Add new --layout-profile compiler-filter for dex2oat.\n  Dexlayout cleanup and refactoring.\n"
    },
    {
      "commit": "ecffc67068a28d55d131553bf915fdb9fafbbc03",
      "tree": "3f63982d609fa01a5b271b5f393ee9c6d83e1107",
      "parents": [
        "b46782abf6752ccf688b0d9f5b4bb83e5d33793b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:37:21 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:41:49 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved.\"\n\nBug: 30627598\n\nThis reverts commit 19886dbeced9430579a27979beb92b09c95197b4.\nSquashed reverts of subsequent partial fixes.\n    This reverts commit bad475a63b7c938b7ff7903ea1dae27369c3f629.\n    This reverts commit 0ba0c7d9b0328af39a385014652eb9af4e42d8b5.\n    This reverts commit ddb8afec79492750f16f98e5bd07d44f3dc485d4.\n\nChange-Id: Id94af5ae56a0335f9641a79c885cc75bba971713\n"
    },
    {
      "commit": "608f2ce4b9870354079b9d63d40363914889f01a",
      "tree": "8b09e660646a63296b76d83877b725fdce7e3b56",
      "parents": [
        "ea7c62983beec6a5a2a6676cc910a436b20ae92c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 19 11:17:11 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 09:12:14 2016 -0800"
      },
      "message": "Add new --layout-profile compiler-filter for dex2oat.\n\nNew compiler filter makes dex2oat call into dexlayout.\nAdded basic test for --layout-profile filter to make sure dex2oat runs\nto completion and file is valid. Contests of file are not checked.\n\nTest: mm test-art-host-gtest-dexlayout_test\nBug: 29921113\nChange-Id: I4bd0dea3d3f1284c155d1d9dea80a48062e67770\n"
    },
    {
      "commit": "b46782abf6752ccf688b0d9f5b4bb83e5d33793b",
      "tree": "0e0a2434b6b68dab04c06e479c82610b8cce227a",
      "parents": [
        "24a56c620774c6f7bb2ef408895b9a48fe7ab4af",
        "340dafabc8e88378e395cda9027cf17726910e91"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 17:07:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 17:07:47 2016 +0000"
      },
      "message": "Merge \"Use a per-thread VerifierDeps.\""
    },
    {
      "commit": "24a56c620774c6f7bb2ef408895b9a48fe7ab4af",
      "tree": "f304f51ecb16e9c92116afc28030d18cfaca296a",
      "parents": [
        "701bb7d1d750850b41b26c75255e1829efb4860e",
        "f46501c6ad11025843682267c10f221323a206b1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 16:40:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 16:40:21 2016 +0000"
      },
      "message": "Merge \"Clear the right data pointer.\""
    },
    {
      "commit": "f46501c6ad11025843682267c10f221323a206b1",
      "tree": "a5b77de81f5ab31e66082b02b225e7fe56877f98",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 13:45:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:21:31 2016 +0000"
      },
      "message": "Clear the right data pointer.\n\nInternally, stack_map_data is an offset of the roots_data allocation.\nPass both to the ClearData method, which will use the right pointer\nto deallocate.\n\nTest: test-art-host in debug mode\nChange-Id: Ibfe38e7f1853870076048427f2efe7121c11c136\n"
    },
    {
      "commit": "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3",
      "tree": "3e7affe083ccc71eb05546af3440fbaefd380000",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0",
        "b88c484affe83b59c73dbd00855cb28754e041a2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 13:18:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 13:18:56 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix the assembler usage in the intrinsics.\""
    },
    {
      "commit": "340dafabc8e88378e395cda9027cf17726910e91",
      "tree": "f742cfc9b9eb3fdf0245a66491d39fb841da7c01",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 16:03:10 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 13:08:29 2016 +0000"
      },
      "message": "Use a per-thread VerifierDeps.\n\nAvoid lock contention on a singleton VerifierDeps by allocating\ntemporary per-thread VerifierDeps that get merged after verification.\n\nThis saves around ~35% compile-times on interpret-only.\n\nOnly the creation of extra strings is guarded by a lock, for simplicity.\n\nTest: test-art-host, test-art-target\nbug: 32641252\nbug: 30937355\n\nChange-Id: I11a2367da882b58e39afa7b42cba2e74a209b75d\n"
    },
    {
      "commit": "9ee5fdf92f498d716c740cc1770943097f968092",
      "tree": "a1d7a4cb0a86500850d7eb96f5f2eb2bef90c487",
      "parents": [
        "da2d78ba97d177b80e0e9528362bcebc1fd31f0f",
        "19886dbeced9430579a27979beb92b09c95197b4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 11:23:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 11:23:16 2016 +0000"
      },
      "message": "Merge \"Make sure that const-class linkage is preserved.\""
    },
    {
      "commit": "a598b869b255b4daeaa34d1dd0939222a3a791b7",
      "tree": "5af89e57aaa81cabbee54c924a9319814c39a81d",
      "parents": [
        "b2dc55149665fa288d44136642a6814a3a5a74a4",
        "a5b09a67034e57a6e10231dd4bd92f4cb50b824c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 21 21:17:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 21:17:32 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::TypeIndex\""
    },
    {
      "commit": "b88c484affe83b59c73dbd00855cb28754e041a2",
      "tree": "5b20e66eec70ad325544d80fd456f975a285ed3e",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Nov 14 14:37:00 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Nov 21 20:11:54 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix the assembler usage in the intrinsics.\n\nThe assembler must not be used outside of any scopes;\nthe macroassembler methods should be called instead.\n\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-host\nTest: ART_USE_VIXL_ARM_BACKEND\u003dtrue m test-art-target\nChange-Id: I1358bea5330547db9b7a8446932d85ba946e5683\n"
    },
    {
      "commit": "19886dbeced9430579a27979beb92b09c95197b4",
      "tree": "33c85aada415308d8207d63bce903262ea7504fe",
      "parents": [
        "bb4366d2b0b56f2cc66041243bd93de4b8e4d15a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 11 11:40:40 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 21 19:11:31 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved.\n\nAfter calling loadClass() on the initiating loader, insert\nthe Class to the ClassTable. Check that the returned class\nhas the correct name and that the ClassTable does not yet\ncontain a different Class for the same name. If either check\nfails, follow the RI behavior for parallel capable class\nloaders, i.e. throw NoClassDefFoundError for name mismatch\n(with more descriptive message than RI) or return the Class\nalready present in the ClassTable. This ensures that the\nconst-class instruction for a given name always gives the\nsame result as the first time it succeeded for the same\ninitiating loader, even for non-well-behaved loader.\n\nInserting the Class to the ClassTable is also a necessary\nstep for changing to hash-based dex cache type array when\nthe DexCache will not necessarily keep the Class and\ntherefore the defining loader alive while the initiating\nloader stays alive, so the ClassTable entry is necessary\nto keep the dependecy.\n\nAdd tests that a const-class instruction always returns the\nsame Class\u003c?\u003e as it returned the first time, i.e. when it\nwas \"linked\", even for class loaders that are not\nwell-behaved, even if the dex cache type array is cleared.\nAlso test the edge cases, i.e. NoClassDefFoundError and\nreturning old entry from ClassTable when already inserted\nby another thread.\n\nBug: 30627598\nTest: 626-const-class-linking\nTest: m test-art-host\nChange-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8\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": "1b868498a176705b867e2572cc1bcbd58dbd62d6",
      "tree": "36e10d1cff265d54090571ab08ad2ae9ebda97c1",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 16:22:37 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 21 10:05:03 2016 -0800"
      },
      "message": "Use type lookup tables in compiler\n\nThis recently regressed and stopped happening, the fix creates fake\nOatDexFiles so that the compiler uses the type lookup tables instead\nof slow FindClassDef and FindTypeId.\n\nPerf on host compile Facebook:\nBefore:\n2.49%: art::DexFile::FindClassDef(unsigned short) const\n1.59%: art::DexFile::FindTypeId(char const*) const\n\nAfter:\n0.42%: art::OatDexFile::FindClassDef(art::DexFile const\u0026, char const*, unsigned long)\n0%: art::DexFile::FindTypeId(char const*) const\n0%: art::DexFile::FindClassDef(unsigned short) const\n\nAverage install (N6P 960 mhz average of 40 samples): 38.2s -\u003e 35.64s\n\nBug: 32641252\n\nTest: test-art-host, adb install.\n\nChange-Id: I34df21dc2c155bc2579c5cafdd91f9cb0fead1a9\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": "2dae2f256bce26690a29af498c50cc2d6440d15b",
      "tree": "5c9a44da1911d455310d88c78fa6871e2397a41d",
      "parents": [
        "67eb3914d2555e9c191337a4fe42ecef419b0330",
        "01b70e8bca5e824ee3958ffbdd7727334e81eb0a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 13:14:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 13:14:11 2016 +0000"
      },
      "message": "Merge \"Add dequickening support.\""
    },
    {
      "commit": "67eb3914d2555e9c191337a4fe42ecef419b0330",
      "tree": "df35892393e9dc706eb4efd7c88d956ea6004403",
      "parents": [
        "80fdea404b6713e9ec1da4c3346d427aad1cfa74",
        "09a940de7d6de44260c25b778f0850f52b2e4438"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 12:54:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 12:54:01 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix PackedSwitch.\""
    },
    {
      "commit": "965a21e284c39a35c185a9d58b843ce5287d7f7c",
      "tree": "ab177c7f353fca69f742f92f210f0c4e14eee7b4",
      "parents": [
        "368479e345cc8c8750db5144ccc7fae5fc41b1e6",
        "ad06b985bb8792bc82835acbe93eda8f9839c6d2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 18 11:24:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 18 11:24:21 2016 +0000"
      },
      "message": "Merge \"Make ImageWriter and PatchOat helper classes nested.\""
    },
    {
      "commit": "01b70e8bca5e824ee3958ffbdd7727334e81eb0a",
      "tree": "3e23fef88de183fd0c7945a6198a68050640b656",
      "parents": [
        "81cae78d1853893ff9c3ecea4b5100002a538eb7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 17 10:58:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 10:44:15 2016 +0000"
      },
      "message": "Add dequickening support.\n\nBoth vdex and BCI require full dequickening support. This\nchange implements dequickening by using the existing encoded\nquickening, and adds the checkcast quickening to that encoding.\n\nbug: 30937355\nbug: 32369913\nTest: dex_to_dex_decompiler_test.cc test-art-host\n\nChange-Id: Ie95f46946d59b28157d6e47dcf4a859be032d1c3\n"
    },
    {
      "commit": "137b07593aedfad193a77f3787ecf5197008c5da",
      "tree": "51e872c3c3d3072ba0032e35fe155c01baba10db",
      "parents": [
        "de19542bdd8fb252d316c5064c8fc224c2fe52aa",
        "54b5855192abee8cb612fce3c34b7562ddf42522"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 17 21:31:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 17 21:31:01 2016 +0000"
      },
      "message": "Merge \"Change offline profile to store type_idx of classes.\""
    },
    {
      "commit": "54b5855192abee8cb612fce3c34b7562ddf42522",
      "tree": "0bba557936990568075507c5ba86efec959c752b",
      "parents": [
        "3825da56fb16cb8c8128dfad3f65ce392ebf0642"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 16 15:15:04 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 17 11:00:37 2016 -0800"
      },
      "message": "Change offline profile to store type_idx of classes.\n\nChanged from storing class_def_idx to type_idx. Allows dexlayout to move\nclass defs without affecting the profile.\n\nTest: mm test-art-host\n\nChange-Id: I8a040adf0f5f47a1592e18aeb55edde01cb3e1ed\n"
    },
    {
      "commit": "8eaa426ca98eda0c4a7493de9bd5949a78514c87",
      "tree": "490116f7eec36d8167362580751003dfdabe556c",
      "parents": [
        "3825da56fb16cb8c8128dfad3f65ce392ebf0642",
        "837e72ae04f6bc53a12e7a26c36fdb896d149583"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 17 17:30:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 17 17:30:44 2016 +0000"
      },
      "message": "Merge \"[MIPS64] JNI Compiler: compiler independent test\""
    },
    {
      "commit": "ad06b985bb8792bc82835acbe93eda8f9839c6d2",
      "tree": "4d380c3dd6c1b6cd0512ea0fad14c5616ab54d62",
      "parents": [
        "85347bd18d47066ea9a214d29cec994472ad18ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 17 16:38:59 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 17 16:43:37 2016 +0000"
      },
      "message": "Make ImageWriter and PatchOat helper classes nested.\n\nNested classes are better for encapsulation. For example,\nwe\u0027ve had an art::FixupRootVisitor in both image_writer.cc\nand patchoat.cc and we didn\u0027t get an ODR violation only\nbecause these two files are never used in the same process.\n\nTest: Rely on the TreeHugger.\nChange-Id: I39a86994923a9c0faa5f05d8c9ede982ce9c0c4c\n"
    },
    {
      "commit": "09a940de7d6de44260c25b778f0850f52b2e4438",
      "tree": "4f44fa8bcefb6a3d5619f7163bfdcd282b11b4fd",
      "parents": [
        "85347bd18d47066ea9a214d29cec994472ad18ca"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Nov 11 16:15:11 2016 +0000"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Nov 17 16:08:27 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix PackedSwitch.\n\nFix the case when the jumptable is very far and offset doesn\u0027t\nfit ADR offset field.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 \\\n      mma test-art-host dist \u0026\u0026 mma test-art-target dist\n\nChange-Id: I2b8ac04eb343947f9a9301f3ce6285794ddad4b8\n"
    },
    {
      "commit": "3825da56fb16cb8c8128dfad3f65ce392ebf0642",
      "tree": "8f747e86885417b9c7f0f060c9901aeea0309c8b",
      "parents": [
        "c180a1b86197890c21217dd193718fc266a07781",
        "8d41c086c41b2169ea9e21c6bfeee19984c79c6a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 17 15:57:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 17 15:57:54 2016 +0000"
      },
      "message": "Merge \"Revert \"jni: Punt to generic JNI for mips\"\""
    },
    {
      "commit": "c180a1b86197890c21217dd193718fc266a07781",
      "tree": "fb28ee432256e3584aa66a0c7cd5bca4872cf22d",
      "parents": [
        "2b362587ab659451e3cafda8de8cef09214d9ca3",
        "cc8b04e5481ca7567d337d9358f92dc2195fc137"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 17 15:57:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 17 15:57:54 2016 +0000"
      },
      "message": "Merge \"jni: Add @CriticalNative support for MIPS32/MIPS64\""
    },
    {
      "commit": "837e72ae04f6bc53a12e7a26c36fdb896d149583",
      "tree": "261006cf6b39481ed9b3401dd769d948076dbfde",
      "parents": [
        "f75d4c239defe4c64170ac408cbd14b3c46e20b6"
      ],
      "author": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Wed Mar 16 11:31:46 2016 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Nov 17 12:00:58 2016 +0100"
      },
      "message": "[MIPS64] JNI Compiler: compiler independent test\n\nFixed MIPS64 stackArgsSignExtendedTest that did not work properly\nwhen code was built with clang. The the test is now written in an\nasm stub and should be completely compiler indepedent.\n\nTest: mma test-art-target-gtest-jni_compiler_test\n\nChange-Id: Idefef3a8414dd8b88a28d2d8862a724bc72402a7\n"
    },
    {
      "commit": "5f498b27840b101f4a8adda484c99b863faecf3b",
      "tree": "427b3242af6c5c4d50a68e5401f60d222473b3ca",
      "parents": [
        "ab39c210072fdb4d22bb11bba354653cdfc58f64",
        "2bbc953357ac5f62cc4ab2eb055e4392e47d0c3d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 17 09:39:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 17 09:39:23 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Arch specific operations.\""
    },
    {
      "commit": "82d44f1408d0108270f4a305a7fe0123bcc53405",
      "tree": "70231fc4bc81498e877c45465ccf847b5e0a96f9",
      "parents": [
        "a45aedbc88a723fb81355c0f66466ebb20e35e86",
        "6beced4c017826f7c449f12fac7fa42403657f2b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 21:40:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 16 21:40:34 2016 +0000"
      },
      "message": "Merge \"Change iftable to never be null\""
    },
    {
      "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": "2bbc953357ac5f62cc4ab2eb055e4392e47d0c3d",
      "tree": "aaaa0ea192d66bf71722fd71ec046b9abf3e884c",
      "parents": [
        "ecd8300b94938f22fa3988c58187acce9f091da8"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Oct 21 11:51:50 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 16 18:40:36 2016 +0000"
      },
      "message": "ARM: VIXL32: Arch specific operations.\n\nTests which now start to pass:\n  550-checker-multiply-accumulate\n  564-checker-negbitwise\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 \\\n      mma test-art-host dist \u0026\u0026 mma test-art-target dist\n\nChange-Id: I0b057486a8e0e48afbc52dd18b61ea16c671bec2\n"
    },
    {
      "commit": "ecd8300b94938f22fa3988c58187acce9f091da8",
      "tree": "48abd7b209b6465e2231b92bec064a824a8f7874",
      "parents": [
        "660407570104c91497e444a034daa05c7ad5064f",
        "fb0b7d45652af78f1035a5e332c732b9ebe060fa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 11:25:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 16 11:25:40 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix VisitTypeConversion.\""
    },
    {
      "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": "fb0b7d45652af78f1035a5e332c732b9ebe060fa",
      "tree": "f604fcca5b8d12ab2a0d450bb610a9011c7acd82",
      "parents": [
        "ddb7b436c59d405fc0f253bb3207a26da17f8196"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Oct 28 16:11:08 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Mon Nov 14 15:26:52 2016 +0000"
      },
      "message": "ARM: VIXL32: Fix VisitTypeConversion.\n\nPass 422-type-conversion and some other tests.\n\nTest: export ART_USE_VIXL_ARM_BACKEND\u003dtrue \u0026\u0026 \\\n      mma test-art-host dist \u0026\u0026 mma test-art-target dist\n\nChange-Id: I89a491a7724ae5286b717133eec16433b7066845\n"
    }
  ],
  "next": "81cae78d1853893ff9c3ecea4b5100002a538eb7"
}
