)]}'
{
  "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "dac7ad17c78387d15d7aefae0f852dddf5f37e34",
      "tree": "603b3ca74ba9144d217497417314fe863e2201ef",
      "parents": [
        "af524438b8a76264a23ec2d748e11eeded02abc7",
        "132d8363bf8cb043d910836672192ec8c36649b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:14:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 10:14:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\""
    },
    {
      "commit": "132d8363bf8cb043d910836672192ec8c36649b6",
      "tree": "42ee8b08f0323e9762675333b50a4c218ecdefc7",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 09:19:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 14:31:30 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\n\nTest: 626-set-resolved-string, test-art-host, test-art-target\nTest: run-libcore-tests.sh\nTest: phone boots and runs\n\nThis reverts commit 3395fbc20bcd20948bec8958db91b304c17cacd8.\n\nChange-Id: I104b73d093e3eb6a271d564cfdb9ab09c1c8cf24\n"
    },
    {
      "commit": "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": "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": "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": "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"
    },
    {
      "commit": "81cae78d1853893ff9c3ecea4b5100002a538eb7",
      "tree": "d32c8f7e57449381511ffb206f4a335c157ae597",
      "parents": [
        "e8fc2cedb85ce4a6747cddbbf4cf33288e0ba5b9",
        "3395fbc20bcd20948bec8958db91b304c17cacd8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\""
    },
    {
      "commit": "3395fbc20bcd20948bec8958db91b304c17cacd8",
      "tree": "e0d00b412961e2aaa0dff91317a9f4168189e5fb",
      "parents": [
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT root tables.\"\"\"\n\nlibcore failures:\ndalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string !\u003d nullptr\n\nThis reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.\n\nChange-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d\n"
    },
    {
      "commit": "4b050e817b929169e57661376793cff4c3ef421a",
      "tree": "56ee6c72dd7ed64fe4bcf701a0733c50b0289bc9",
      "parents": [
        "7fad15efba22817e9abb0f35b15aa2dd4715884c",
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 09:13:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 09:13:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT root tables.\"\"\""
    },
    {
      "commit": "cfeb03142fba99853b43c06e0cb1651866db8c50",
      "tree": "0fda3d6b608726bc835b2045013386ca720e987a",
      "parents": [
        "e66dd4995b4401da2794f7e6f3fb1df3437d40cb",
        "551b28fcfe0c3e8181489ef0697d76f7202fbdb9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 12 13:58:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 12 13:58:17 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Implement more codegen visitors.\""
    },
    {
      "commit": "08ec180de9481024c16be6841f068a45284cd8cc",
      "tree": "e8d450a7be42213ee14d465cd374e90f205e54df",
      "parents": [
        "5302bd999afee6db5b0cfd63e6a49b0fcbf92dd4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Nov 10 18:21:30 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Nov 11 09:34:56 2016 -0800"
      },
      "message": "Fixed bug in LICM\n\nRationale:\nWe should stop hoisting anything that can throw\nas soon as something else that can do something\nvisible (either throw or write something) is *not*\nhoisted (used to be just throw test on second part).\n\nBug: 32810295\nTest: test-art-host\nChange-Id: Id88b712a5d9e37598d0bebbd4ecf4b1d8ee787b5\n"
    },
    {
      "commit": "75afcdd3503a8a8518e5b23d21b6e73306ce39ce",
      "tree": "b49afc4772fa72319475f96ed66d744bb03e803c",
      "parents": [
        "ee48b0f11df812d98de5c989e1f6d95a21515564"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 10:38:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 13:18:24 2016 +0000"
      },
      "message": "Revert \"Revert \"JIT root tables.\"\"\n\nAlso  contains Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nThis reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nTest: ART_USE_READ_BARRIER\u003dtrue/false test-art-host test-art-target\n\nChange-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3\n"
    },
    {
      "commit": "0a3d8c65c96483a6b04288d7347e437382d570ce",
      "tree": "75f01844e1a45b4991dcbe11186c51bec523e4bf",
      "parents": [
        "ee48b0f11df812d98de5c989e1f6d95a21515564",
        "00c141aaa07b95a8c2c492b617871abd3cf7162a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 11:57:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 11:57:21 2016 +0000"
      },
      "message": "Merge \"Dump c1visualizer output before and after each pass.\""
    },
    {
      "commit": "ee48b0f11df812d98de5c989e1f6d95a21515564",
      "tree": "e0d00b412961e2aaa0dff91317a9f4168189e5fb",
      "parents": [
        "07d5e39bff20bfb8d64a2a80d4d9bda177c6bc3d",
        "cfbe9138edcc56be24f2fad121cd38d6490d95c4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 11:49:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 11:49:11 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Implement InstanceOf, InvokeInterface and others.\""
    },
    {
      "commit": "1f01a46fdfc5fdda9268cf5d1ce48d6baf8d619d",
      "tree": "69c08594e2f3f8ef3f3496fd839c407b598d564a",
      "parents": [
        "48dfb4a7f113b3ada0c7e55f0503e692180decc5",
        "fe814e89965ddf9a8b603863bd28259f8dd7be35"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 11 00:58:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 00:58:23 2016 +0000"
      },
      "message": "Merge \"Use entrypoint switching to reduce code size of GcRoot read barrier\""
    },
    {
      "commit": "fe814e89965ddf9a8b603863bd28259f8dd7be35",
      "tree": "32ecc282f176d0e2a98f41f6e4b116d26cf58bee",
      "parents": [
        "977919fbcbfbf0c1c3fa97e51490bc678da646d2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 14:32:49 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 14:41:28 2016 -0800"
      },
      "message": "Use entrypoint switching to reduce code size of GcRoot read barrier\n\nSet the read barrier mark register entrypoints to null when the GC\nis not marking. The compiler uses this to avoid needing to load the\nis_gc_marking boolean.\n\nCode size results on ritzperf CC:\narm32: 13439400 -\u003e 13242792 (-1.5%)\narm64: 16380544 -\u003e 16208512 (-1.05%)\n\nImplemented for arm32 and arm64. TODO: Consider implementing on x86.\n\nBug: 32638713\nBug: 29516974\n\nTest: test-art-host + run ritzperf\nChange-Id: I527ca5dc4cd43950ba43b872d0ac81e1eb5791eb\n"
    },
    {
      "commit": "48dfb4a7f113b3ada0c7e55f0503e692180decc5",
      "tree": "f0a9b05e446762a42f9668a25e4195a2b90ae884",
      "parents": [
        "48f3e29643233dd5383deca10c4c65690a3e0b47",
        "3af00dc3918dfaacd51fb0ef604de51dd6dc9af4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 22:34:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 22:34:41 2016 +0000"
      },
      "message": "Merge \"Use enum for read barrier options in compiler\""
    },
    {
      "commit": "3af00dc3918dfaacd51fb0ef604de51dd6dc9af4",
      "tree": "ec07882ae02d98bd9841646ce9e8bb1349e9c751",
      "parents": [
        "977919fbcbfbf0c1c3fa97e51490bc678da646d2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 11:25:57 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 12:45:56 2016 -0800"
      },
      "message": "Use enum for read barrier options in compiler\n\nEnums are just phenomenal. Also fixed a double load error in x86\ninterface check cast fast path.\n\nTest: test-art-host\n\nChange-Id: Iea403ce579145b6a294073f3900ad6921c1a0d53\n"
    },
    {
      "commit": "48f3e29643233dd5383deca10c4c65690a3e0b47",
      "tree": "b7d3cf1d726fa56157321e2d380b497a1ba62af5",
      "parents": [
        "5199c11040973475509456b186437b654946bb82",
        "c757decb04d8535fd806b9bce1c2fe5e52c228dc"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Nov 10 20:41:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 20:41:13 2016 +0000"
      },
      "message": "Merge \"Do not inline loops without exit edges\""
    },
    {
      "commit": "977919fbcbfbf0c1c3fa97e51490bc678da646d2",
      "tree": "3e462b1ea5887345ed025b030b0c0a4b71003524",
      "parents": [
        "ee59d46595bb860fea26122f47f8797d2d0fe5f4",
        "aa474eb597056d21c0b21d353b9b6aa460351d0f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 10 18:05:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 18:05:50 2016 +0000"
      },
      "message": "Merge \"Avoid read barriers for inlined check cast\""
    },
    {
      "commit": "00c141aaa07b95a8c2c492b617871abd3cf7162a",
      "tree": "e4777db1006e6ac42a0669bf5383b61235835dce",
      "parents": [
        "ee59d46595bb860fea26122f47f8797d2d0fe5f4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 15:19:15 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 16:55:22 2016 +0000"
      },
      "message": "Dump c1visualizer output before and after each pass.\n\nIn order to get the last state of a graph before a crash.\n\nTest: dex2oat --dump-cfg\nChange-Id: I461a26a47a170b95fadb9da21a443af26fe52181\n"
    },
    {
      "commit": "551b28fcfe0c3e8181489ef0697d76f7202fbdb9",
      "tree": "ea89b82e58ade3a7a1cf2013e118a3fa59112548",
      "parents": [
        "cfbe9138edcc56be24f2fad121cd38d6490d95c4"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Oct 18 19:11:30 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Nov 10 14:54:15 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement more codegen visitors.\n\n~50 tests now start to pass.\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: I5b1a032f11e2c0fda2ea2c6a0f1b1a4b2668964a\n"
    },
    {
      "commit": "cfbe9138edcc56be24f2fad121cd38d6490d95c4",
      "tree": "620b76b45154264d1dfd2d3baf8a25f843cd9142",
      "parents": [
        "cc7433d333cd62ed09c0ba0a17e8b0b30a31cb99"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Oct 14 15:58:56 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Nov 10 14:54:09 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement InstanceOf, InvokeInterface and others.\n\nMore than 100 tests now start to pass.\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: I7a30241d42bf0beec254f6988646282f4ea46cef\n"
    },
    {
      "commit": "35dfcaa5a8bb155ebdb2b821f2e6ed841fd61f4e",
      "tree": "b5d18805902b0661040b42ec698e401ae7ff8ab1",
      "parents": [
        "16593ed1d3914308052f98542bb9bf38ed588d53"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Sep 22 09:26:01 2016 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Nov 10 15:15:50 2016 +0100"
      },
      "message": "MIPS32: Add missing swaps to codegen\n\nAdd swaps between fp registers and stack.\nAlso added emit_swap_mips_test.\n\nTest: mma -j2 test-art-target-run-test on CI20\nTest: mma test-art-host-gtest-emit_swap_mips_test\n\nChange-Id: I38e7be6a86d9ad36a82e9d4293e9a6971b6e016a\n"
    },
    {
      "commit": "16593ed1d3914308052f98542bb9bf38ed588d53",
      "tree": "783e1081ec6828731ef88df679193d0c4c2f5919",
      "parents": [
        "af0cac6ed7221303c8bd8a77f6c41f4af8045d60",
        "fdaf0f45510374d3a122fdc85d68793e2431175e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 10 13:58:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 10 13:58:34 2016 +0000"
      },
      "message": "Merge \"Change string compression encoding.\""
    },
    {
      "commit": "5ac321b40c660634f6d40ade2e373daaef0f16f6",
      "tree": "af9f37c91ab85f6508be58c8ecff5ec94f2251a2",
      "parents": [
        "334b5c3d0d5d84242b4528241c759789e532ce08"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 16:33:54 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 18:10:16 2016 -0800"
      },
      "message": "Fix heap poisoning build\n\nBug: 32577579\n\nTest: mm build-art\n\nChange-Id: I394691334ae2029810e069c768d34077d36679e2\n"
    },
    {
      "commit": "aa474eb597056d21c0b21d353b9b6aa460351d0f",
      "tree": "738ba965a552ac0e4814cb1131ef0dd96ae14142",
      "parents": [
        "334b5c3d0d5d84242b4528241c759789e532ce08"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 15:18:27 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 15:59:33 2016 -0800"
      },
      "message": "Avoid read barriers for inlined check cast\n\nAvoiding read barriers improves speed and reduces code size.\n\nDoing this can never result in false positives, only false negatives.\nThese false negatives are handled correcly by rechecking in the\nentrypoint.\n\nRitzperf code size for CC:\narm32: 13439400-\u003e13300136 (-1.04%)\narm64: 16405120-\u003e16253568 (-0.92%)\n\nPerf: TODO\n\nBug: 29516974\nBug: 12687968\n\nTest: test-art-host, run ritzperf both with CC\n\nChange-Id: Ie024e0b1e8ee415781fb73e8029e87e8a5318f86\n"
    },
    {
      "commit": "334b5c3d0d5d84242b4528241c759789e532ce08",
      "tree": "4925b11b74297e34c35eb17bb2f08b161b8893c7",
      "parents": [
        "3b3daf35d3f3053ac5f645cc0b0e5527012c44d7",
        "5c44c1bb131e609d9aba6f97f933567bf77cb8ed"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 23:16:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 23:16:16 2016 +0000"
      },
      "message": "Merge \"Add interface check cast fast path to arm, arm64, x86\""
    },
    {
      "commit": "c757decb04d8535fd806b9bce1c2fe5e52c228dc",
      "tree": "8800f743cdfc30a37279d918f3947d3ec694ef66",
      "parents": [
        "11bbc7fd5b4ed64d13c5d21ae9c8b686cf24bcbb"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Nov 04 15:48:34 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Nov 09 15:14:51 2016 -0800"
      },
      "message": "Do not inline loops without exit edges\n\nFixes an issue with LinearOrder after inlining a function containing a\nloop that has no exit edge.  The failure is due to incorrect loop\ninformation being computed for blocks that are not on a path to the\ninlined function\u0027s return.  They should not be considered part of the\ncaller\u0027s enclosing loop, but are today.\n\nBug: 32547653\nTest: run-test --host 478-checker-inline-noreturn\nChange-Id: I9694a1cb861430051c801d07f7ce29752332cba5\n"
    },
    {
      "commit": "7891b23b2bea97fe63baa45732c843309bd3b5cb",
      "tree": "9c27286f83afd5aab22f51be2e5e10f458aa478f",
      "parents": [
        "20c56a8cded87092d40097323fcf9eaf50f64e4b",
        "ff7d89c0364f6ebd0f0798eb18ef8bd62917de6a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 09 19:06:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 19:06:12 2016 +0000"
      },
      "message": "Merge \"Allow read side effects for removing dead instructions.\""
    },
    {
      "commit": "5c44c1bb131e609d9aba6f97f933567bf77cb8ed",
      "tree": "46792f774d0c4e0e096510cb1927768cc4b92a46",
      "parents": [
        "b4e4c279a0d96c5c9bd6d038d97c3c9992ff8d09"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 04 18:13:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 09 10:31:16 2016 -0800"
      },
      "message": "Add interface check cast fast path to arm, arm64, x86\n\nBug: 12687968\nBug: 32577579\n\nTest: test-art-host, test-art-target CC\n\nChange-Id: Ia57099d499fa704803cc5f0135f0f53fefe39826\n"
    },
    {
      "commit": "ff7d89c0364f6ebd0f0798eb18ef8bd62917de6a",
      "tree": "9a8401416b499f815731fd38dec219a1e49b623d",
      "parents": [
        "8acdebc1a1b5821d3bb8e9461f7877fc234a37ff"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 07 08:49:28 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 09 09:32:36 2016 -0800"
      },
      "message": "Allow read side effects for removing dead instructions.\n\nRationale:\nInstructions that only have the harmless read side effect may\nbe removed when dead as well, we were too strict previously.\nAs proof of concept, this cl also provides more accurate information\non a few string related intrinsics. This removes the dead indexOf\nfrom CaffeineString (17% performance improvement, big bottleneck\nof the StringBuffer\u0027s toString() still remains in loop).\n\nTest: test-art-host\nChange-Id: Id835a8e287e13e1f09be6b46278a039b8865802e\n"
    },
    {
      "commit": "20c56a8cded87092d40097323fcf9eaf50f64e4b",
      "tree": "1dd41fe4afd736aa0cfb8d6ef8ed4835a4dbe4af",
      "parents": [
        "2e7f085990423a706137c1d42673226ee7a7194f",
        "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "message": "Merge \"Revert \"JIT root tables.\"\""
    },
    {
      "commit": "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035",
      "tree": "1220262d0ed22d91777c68a8a568348cddf820cb",
      "parents": [
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "message": "Revert \"JIT root tables.\"\n\nMay be the offender for jit-gcstress failure of 902.\n\nThis reverts commit ac3ebc3150760425ed00abd56da48f9a6e0666bc.\n\nChange-Id: I9ea6c9236fd1729fed7d1868dd8a111172932308\n"
    },
    {
      "commit": "2e7f085990423a706137c1d42673226ee7a7194f",
      "tree": "111034c140ccc9c458a353a4a7cc5d85c4a3b98b",
      "parents": [
        "b4e4c279a0d96c5c9bd6d038d97c3c9992ff8d09",
        "07c919feccdf47f997842a131a802aa6b891e34a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 17:30:00 2016 +0000"
      },
      "message": "Merge \"Revert \"Support kJitTableAddress in x86/arm/arm64.\"\""
    },
    {
      "commit": "07c919feccdf47f997842a131a802aa6b891e34a",
      "tree": "56d9bb3097c51d5efbf67cd7516b0bc3c8e16616",
      "parents": [
        "997d1217830c0a18b70faeabd53c04700a87d7d9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:29:03 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:29:03 2016 +0000"
      },
      "message": "Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nRevert this in order to revert https://android-review.googlesource.com/#/c/285781/\n\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nChange-Id: I1888fba1c6f712cae4aec4ea4719b74a46da156c\n"
    },
    {
      "commit": "b4e4c279a0d96c5c9bd6d038d97c3c9992ff8d09",
      "tree": "530664632e08ed8f82006e8899ff0de4a32256f7",
      "parents": [
        "11bbc7fd5b4ed64d13c5d21ae9c8b686cf24bcbb",
        "661b69bd7b19f90b0c0cba7f354e61f7ff9cc583"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 09 16:42:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 16:42:46 2016 +0000"
      },
      "message": "Merge \"Reduce arena memory usage when changing graph structure.\""
    },
    {
      "commit": "11bbc7fd5b4ed64d13c5d21ae9c8b686cf24bcbb",
      "tree": "987b3b2cbac0d69bb96356fb2a9994727aebf47a",
      "parents": [
        "2badb9a4c2ef794344f9434e1e6aed865646fcaf",
        "997d1217830c0a18b70faeabd53c04700a87d7d9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 16:25:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 16:25:24 2016 +0000"
      },
      "message": "Merge \"Support kJitTableAddress in x86/arm/arm64.\""
    },
    {
      "commit": "661b69bd7b19f90b0c0cba7f354e61f7ff9cc583",
      "tree": "85e69c696629cb63e14a04abb71b6ff4b0a14fa6",
      "parents": [
        "2a2f713717ace8a026cfe76c91165a5ed0d80182"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 14:11:37 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 15:00:35 2016 +0000"
      },
      "message": "Reduce arena memory usage when changing graph structure.\n\nUse swap() to reuse previously allocated memory. Use\nrange insertion instead of individual push_back()s.\n\nTest: m test-art-host.\nChange-Id: I7174f8cc66937f34b452ff7268a8806ca94e7573\n"
    },
    {
      "commit": "997d1217830c0a18b70faeabd53c04700a87d7d9",
      "tree": "1f892df0eb21ebd0139cd62aa9f46a7485f375da",
      "parents": [
        "0864c98b10cb8ca306671cabaa9be2a4068a2711"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 10:36:29 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 14:43:27 2016 +0000"
      },
      "message": "Support kJitTableAddress in x86/arm/arm64.\n\ntest: test-art-host test-art-target, angler boots and runs.\nChange-Id: I3654ae2809d4d759db76ee1ada1c17f3a9c3b392\n"
    },
    {
      "commit": "54d6a207341ad45cb5eceed71a344073ed6d4e31",
      "tree": "d24fc641ca9ad2b1732a40f0989e3683cc0a5028",
      "parents": [
        "2a2f713717ace8a026cfe76c91165a5ed0d80182"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 12:46:38 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 12:46:38 2016 +0000"
      },
      "message": "Fix 552-checker-sharpening for PIC test.\n\nAnd remove obsolete HLoadString::LoadKind::kDexCacheAddress.\n\nTest: m ART_TEST_PIC_TEST\u003dtrue test-art-host\nChange-Id: I3e7a1a98c2c7eba5ea10954d7efcf743a807c300\n"
    },
    {
      "commit": "fdaf0f45510374d3a122fdc85d68793e2431175e",
      "tree": "3315c82410fd42612bb501bed150df454dde0dde",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 19:29:53 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 11:08:31 2016 +0000"
      },
      "message": "Change string compression encoding.\n\nEncode the string compression flag as the least significant\nbit of the \"count\" field, with 0 meaning compressed and 1\nmeaning uncompressed.\n\nThe main vdex file is a tiny bit larger (+28B for prebuilt\nboot images, +32 for on-device built images) and the oat\nfile sizes change. Measured on Nexus 9, AOSP ToT, these\nchanges are insignificant when string compression is\ndisabled (-200B for the 32-bit boot*.oat for prebuilt boot\nimage, -4KiB when built on the device attributable to\nrounding, -16B for 64-bit boot*.oat for prebuilt boot image,\nno change when built on device) but with string compression\nenabled we get significant differences:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: -28KiB\n    - 64-bit boot*.oat: -24KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: -32KiB\n    - 64-bit boot.oat: -28KiB\nThe boot image oat file overhead for string compression:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: before: ~80KiB after: ~52KiB\n    - 64-bit boot*.oat: before: ~116KiB after: ~92KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: before: 92KiB after: 60KiB\n    - 64-bit boot.oat: before: 116KiB after: 92KiB\n\nThe differences in the SplitStringBenchmark seem to be lost\nin the noise.\n\nTest: Run ART test suite on host and Nexus 9 with Optimizing.\nTest: Run ART test suite on host and Nexus 9 with interpreter.\nTest: All of the above with string compression enabled.\nBug: 31040547\n\nChange-Id: I7570c2b700f1a31004a2d3c18b1cc30046d35a74\n"
    },
    {
      "commit": "0864c98b10cb8ca306671cabaa9be2a4068a2711",
      "tree": "56d9bb3097c51d5efbf67cd7516b0bc3c8e16616",
      "parents": [
        "4c45ffaf6329d40e3249894cfb078d3d274ddfd5",
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "message": "Merge \"JIT root tables.\""
    },
    {
      "commit": "3773f2106864cf71fa17be33058717ecc402a5ad",
      "tree": "1bf43b280f3a8f484758d308383c67af328e1a9f",
      "parents": [
        "8acdebc1a1b5821d3bb8e9461f7877fc234a37ff",
        "ca620d7bc03b23a0bcf0ef58df58603ee000dca0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 09 01:48:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 01:48:19 2016 +0000"
      },
      "message": "Merge \"ART: Fix tidy warnings\""
    },
    {
      "commit": "8acdebc1a1b5821d3bb8e9461f7877fc234a37ff",
      "tree": "4cf9ea4bcb8757499ee392d664819682692edb52",
      "parents": [
        "89269b6f6ab24eaa3c5ab87c2fb197c335584bd6",
        "e58bdcace75affd0b01f9b68ee2347e507a4a1af"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Nov 08 23:29:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 08 23:29:13 2016 +0000"
      },
      "message": "Merge \"Allow HDeoptimize to co-exist with LSE.\""
    },
    {
      "commit": "da40ac056c8f8913cc1168cf0a0215ec992cd60c",
      "tree": "d437a440c08c718ffc8f52c536e88e8cbaf9d719",
      "parents": [
        "8bab69aafb3039f1dfe4aad4faf2a99986018abb",
        "b99f4d6463e7cb5654af3893ed7b3113665df658"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 08 23:14:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 08 23:14:22 2016 +0000"
      },
      "message": "Merge \"Change check cast entrypoint to check instance of\""
    },
    {
      "commit": "ca620d7bc03b23a0bcf0ef58df58603ee000dca0",
      "tree": "07cb026075b70a958d14ae84b4e213178a6ba0b4",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 08:09:33 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 15:04:48 2016 -0800"
      },
      "message": "ART: Fix tidy warnings\n\nSwitch to char versions of find variants.\n\nAdd \"explicit\" constructor variants or refactor and\nremove defaults.\n\nUse const references.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I970cc2f47d6cf8f0c74104b994b075b2fafb3d45\n"
    },
    {
      "commit": "b99f4d6463e7cb5654af3893ed7b3113665df658",
      "tree": "1bacc6a2bd01426c921e2f83f39bb63f9d9d8048",
      "parents": [
        "67381d6298edf18760b0c9b3d16572dc3894e551"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 07 16:17:26 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 08 12:46:59 2016 -0800"
      },
      "message": "Change check cast entrypoint to check instance of\n\nReduces code size since we do not need to reload class before\ncalling slow path.\n\nTODO: Delete read barriers in the check cast code since the slow\npath will retry with the proper read barriers if the check fails.\n\nBug: 12687968\nBug: 29516974\n\nTest: test-art-host + test-art-target with CC\n\nChange-Id: Ia4eb9bbe3fe2d2016e44523cf0451210828d7b88\n"
    },
    {
      "commit": "ac3ebc3150760425ed00abd56da48f9a6e0666bc",
      "tree": "3c5c923bb00a898e035c0e7c4b8a6a684a578419",
      "parents": [
        "76ad2405b40547e0ab4fc401fb8303189ff783eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:13:50 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 08 17:21:30 2016 +0000"
      },
      "message": "JIT root tables.\n\nImplement root tables for the JIT. Each JIT compiled method\ngets a table allocated before the stack maps.\n\nThe table gets visited through Runtime::SweepSystemWeaks.\n\nImplement String roots for x86_64 as an example.\n\nTest: test-art-host test-art-target\n\nChange-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2\n"
    },
    {
      "commit": "b02b8d7df48ea3314cfcb3c08d84ac9556363833",
      "tree": "3835be32e27cb317ffde53f5fdd9f494b7dd2fdd",
      "parents": [
        "bb62b21f77b3af2b0b0402736bf301a78f6f4bf9",
        "606c8f04d45df8f09f56cbce9881a57a4ae43174"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 08 13:50:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 08 13:50:23 2016 +0000"
      },
      "message": "Merge \"Fix SimplifyIfs() trying to redirect exception handler edges.\""
    },
    {
      "commit": "606c8f04d45df8f09f56cbce9881a57a4ae43174",
      "tree": "cd85e1cc5ebfb357bdd4a70ce6deff748ea667e6",
      "parents": [
        "2ab98309c0fc7b3c7451205b2371db5c34b05d49"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 03 13:01:28 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 08 10:24:52 2016 +0000"
      },
      "message": "Fix SimplifyIfs() trying to redirect exception handler edges.\n\nTest: 622-simplifyifs-exception-edges\nTest: m test-art-host\nBug: 32545860\nBug: 32546110\nBug: 18051191\nChange-Id: I641ed73baace840411fc5651937bbc80e79b0c46\n"
    },
    {
      "commit": "72367f81962e46a75fc53ada9b939f7c3159b1ef",
      "tree": "b19152fb7d2d0d4e51a77730ab003906e40db28b",
      "parents": [
        "76ad2405b40547e0ab4fc401fb8303189ff783eb",
        "19c5419d21376dd69404736b998fbbb9da54af56"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 07 12:54:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 07 12:54:20 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable IntermediateAddress for primitive arrays with read barriers.\"\"\""
    },
    {
      "commit": "53b07bdd7f9771b8c7e342e52c2730de117dff06",
      "tree": "1efe31d19d2a2bbfeb2be8b85c5a97da8dd92dfd",
      "parents": [
        "a840d6155dd3332a1bef42facb1a5d2a3a524c5e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 05 15:09:19 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 05 15:09:19 2016 +0000"
      },
      "message": "Fix poison build.\n\nThe slow path for interface check cast isn\u0027t fatal for that build.\n\nTest: ART_HEAP_POISONING\u003dtrue/false m test-art-host-run-test\nChange-Id: I3daf59e7f1e828ec72faf899adfafc9abd0fed88\n"
    },
    {
      "commit": "b5f3d818a1bca7203d7ea0dee55bdc79e8dfaa20",
      "tree": "e18758ebf663cc8c20c220f3154fcd67e539b464",
      "parents": [
        "1eb791ab6b5cb571edbe803db2908c42070d597f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 04 19:25:20 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 04 19:27:37 2016 -0700"
      },
      "message": "ART: Make TypeCheckSlowPath call kind consistent\n\nSlight refactor to make location and code generator consistent.\n\nBug: 32577579\nBug: 29516974\nTest: m test-art-host\nChange-Id: I11f8e227d4088d4922e6fdac3348cfe0f6690216\n"
    },
    {
      "commit": "e58bdcace75affd0b01f9b68ee2347e507a4a1af",
      "tree": "7380ed2e254fa5f1bb5c15538f5ed489fa6f0d94",
      "parents": [
        "6f1b65d3b1f5037620f3d52cb703d20baf6e49dc"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Oct 28 11:07:24 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Nov 04 15:33:02 2016 -0700"
      },
      "message": "Allow HDeoptimize to co-exist with LSE.\n\nThe env use of HDeoptimize counts as escaping at the end of\nexecuting the compiled code for a singleton, just like a return.\nSo store elimination won\u0027t happen for that singleton\u0027s locations.\n\nTest: make test-art-host\nBug: 31716107\n\nChange-Id: I09838e80586d279714c676a2f7294ae518f61457\n"
    },
    {
      "commit": "cdba73be7eacf5891902e3dbeb9101c303e3bc8f",
      "tree": "899c376e16c6e3947cc6f52227ef9f8802858489",
      "parents": [
        "6adc5a8cac4eab3b847f81c422def4b4ae510332"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 03 19:23:06 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 04 15:25:45 2016 -0700"
      },
      "message": "X86_64: Inline checking for kInterfaceCheck check cast\n\nInterface check-cast with read barriers:\nBefore: 5.27 ns/check\nAfter: 2.36 ns/check\n\nCode expansion is 0.29%.\n\nTest: test-art-host\n\nBug: 32577579\nBug: 29516974\n\nChange-Id: Ie48251f97fbf2c95bd0a7c4bd62075414f8e3ae3\n"
    },
    {
      "commit": "8fba1e0a35e72cf9204cc97e713b7c8392e03186",
      "tree": "e7afe330daa383e2cab021558956b8dc69d0af9f",
      "parents": [
        "b85fd6fd73aa65bf0d65a1034ea2b6ed748a6a51",
        "0afd1be3c2bd0b77e9264bbac6649a2a7129044f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 04 19:22:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 04 19:22:59 2016 +0000"
      },
      "message": "Merge changes I8bbef5e3,Ib68bdc31,Ie39b7f59,I1ef8b65a\n\n* changes:\n  ART: Remove \"explicit\" annotation\n  ART: Use references in assembler tests\n  ART: Make ManagedRegister ValueObject\n  ART: Make Location trivially copyable\n"
    },
    {
      "commit": "b85fd6fd73aa65bf0d65a1034ea2b6ed748a6a51",
      "tree": "a5d270b0c42347f35f54f36d7612b89bc8c1b3a9",
      "parents": [
        "4f27f0baff46c46ed5c5b9387e036e39460d3f50",
        "807868eac75a39e79ee6309ed4cbe038407efa29"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 04 17:42:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 04 17:42:32 2016 +0000"
      },
      "message": "Merge \"Account for early exit loop.\""
    }
  ],
  "next": "0771ee25a7b9cee785ce683c6c10db794d7b3c8c"
}
