)]}'
{
  "log": [
    {
      "commit": "ac141397dc29189ad2b2df41f8d4312246beec60",
      "tree": "a2f481463a14695bf9327fd2f549878ecf30c77b",
      "parents": [
        "5c9f90c5ecf2ff6f93ada0f7b18b46d866c59ea1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 13 11:53:47 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Jan 15 15:18:07 2017 +0000"
      },
      "message": "Revert \"Revert \"ART: Compiler support for invoke-polymorphic.\"\"\n\nThis reverts commit 0fb5af1c8287b1ec85c55c306a1c43820c38a337.\n\nThis takes us back to the original change and attempts to fix the\nissues encountered:\n\n- Adds transition record push/pop around artInvokePolymorphic.\n- Changes X86/X64 relocations for MacSDK.\n- Implements MIPS entrypoint for art_quick_invoke_polymorphic.\n- Corrects size of returned reference in art_quick_invoke_polymorphic\n  on ARM.\n\nBug: 30550796,33191393\nTest: art/test/run-test 953\nTest: m test-art-run-test\n\nChange-Id: Ib6b93e00b37b9d4ab743a3470ab3d77fe857cda8\n"
    },
    {
      "commit": "0d3998b5ff619364acf47bec0b541e7a49bd6fe7",
      "tree": "a4763c0660372f6311b612c09267cbbc2fe71e89",
      "parents": [
        "aa89a4c6fca095904521842c018399f1e3501a45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 15:35:12 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 16:51:12 2017 +0000"
      },
      "message": "Revert \"Revert \"Make object allocation entrypoints only take a class.\"\"\n\nThis reverts commit f7aaacd97881c6924b8212c7f8fe4a4c8721ef53.\n\nChange-Id: I6756cd1e6110bb45231f62f5e388f16c044cb145\n"
    },
    {
      "commit": "b66846515656398af7af798172bcd8acd1d4ffa6",
      "tree": "c43958914f8679f264796c91717b8cb277d91d80",
      "parents": [
        "1b8de86a54b04a56df97212ca584ff7188d32065"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Jan 11 13:42:38 2017 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Jan 12 11:26:04 2017 +0100"
      },
      "message": "MIPS32: Change java.lang.Math.abs(float/double) intrinsics\n\nabs.s and abs.d instructions can\u0027t be used when NAN2008\u003d0 (R2 and\nbefore). In these cases, abs(NaN) might change other bits (not just\nsign bit).\n\nThis fixes test failure 631-checker-fp-abs for MIPS32.\n\nBug: 30758343\nTest: mma test-art-target-run-test on CI20\n\nChange-Id: I352efd66f2f72740406462c9ccc3bc4b1b5aea20\n"
    },
    {
      "commit": "c8144cdad955b77988a48777cfbdc6fd2e8c1916",
      "tree": "354e00610ec25279a8c4b77e8b685e380815813f",
      "parents": [
        "d1a277954284c4dd4b5b14fd4e58f1854daed848",
        "f7aaacd97881c6924b8212c7f8fe4a4c8721ef53"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 12 06:19:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 12 06:19:23 2017 +0000"
      },
      "message": "Merge \"Revert \"Make object allocation entrypoints only take a class.\"\""
    },
    {
      "commit": "f7aaacd97881c6924b8212c7f8fe4a4c8721ef53",
      "tree": "780209ac8e992fa63307062977f672aa5bb55d9e",
      "parents": [
        "2b615ba29c4dfcf54aaf44955f2eac60f5080b2e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 12 02:58:38 2017 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 12 02:58:38 2017 +0000"
      },
      "message": "Revert \"Make object allocation entrypoints only take a class.\"\n\n960-default-smali64 is failing.\n\nThis reverts commit 2b615ba29c4dfcf54aaf44955f2eac60f5080b2e.\n\nChange-Id: Iebb8ee5a917fa84c5f01660ce432798524d078ef\n"
    },
    {
      "commit": "dcf52765ab5886abdd85a4436fa0358b2a31341d",
      "tree": "b68ee975792a5bf488ed93cfbe09a37f80008288",
      "parents": [
        "a28ddf5140cd1f4a2ae93dbf8be2f200b1552003",
        "0fb5af1c8287b1ec85c55c306a1c43820c38a337"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 19:18:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 19:18:51 2017 +0000"
      },
      "message": "Merge \"Revert \"ART: Compiler support for invoke-polymorphic.\"\""
    },
    {
      "commit": "0fb5af1c8287b1ec85c55c306a1c43820c38a337",
      "tree": "66239e7f745fae54e1630e91fb44a859bff615d6",
      "parents": [
        "02e3092f8d98f339588e48691db77f227b48ac1e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 18:58:15 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 19:17:33 2017 +0000"
      },
      "message": "Revert \"ART: Compiler support for invoke-polymorphic.\"\n\nThis reverts commit 02e3092f8d98f339588e48691db77f227b48ac1e.\n\nReasons for revert:\n\n- Breaks MIPS/MIPS64 build.\n- Fails under GCStress test on x64.\n- Different x64 build configuration doesn\u0027t like relocation.\n\nChange-Id: I512555b38165d05f8a07e8aed528f00302061001\n"
    },
    {
      "commit": "79f9928fc9e0a88430f3329069bfb2f9a0d37f0c",
      "tree": "e3142e4829c808c3df1059f3b05c0b3a37193ce9",
      "parents": [
        "716eb25353390f699778a79d69006a5b8d8289c2",
        "02e3092f8d98f339588e48691db77f227b48ac1e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 11 18:08:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 18:08:04 2017 +0000"
      },
      "message": "Merge \"ART: Compiler support for invoke-polymorphic.\""
    },
    {
      "commit": "02e3092f8d98f339588e48691db77f227b48ac1e",
      "tree": "127dd23346206b0547b7c6453a776253252b3c6e",
      "parents": [
        "bc7d0deda4549f314e68ee3e0e6afd68c4a8fd06"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Dec 01 10:33:51 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 11 16:26:43 2017 +0000"
      },
      "message": "ART: Compiler support for invoke-polymorphic.\n\nAdds basic support to invoke method handles in compiled code.\n\nEnables method verification for methods containing invoke-polymorphic.\n\nAdds k45cc/k45rc output to Instruction::DumpString() which\nwas found to be missing when enabling verification.\n\nInclude stack traces in test 957-methodhandle-transforms for\nfailures so they can be easily identified.\n\nBug: 30550796,33191393\nTest: art/test/run-test 953\nTest: m test-art-run-test\nChange-Id: Ic9a96ea24906087597d96ad8159a5bc349d06950\n"
    },
    {
      "commit": "db47a144d816e0976c5b4c00461b80b07ce97c60",
      "tree": "628ffda55e75f18889161b684ac2b4e578d562b7",
      "parents": [
        "f62455a422baf040d901db964bdd3c6e18185c13",
        "f0acfe7a812a332122011832074142718c278dae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 11 14:05:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 14:05:09 2017 +0000"
      },
      "message": "Merge \"Keep resolved String in HLoadString.\""
    },
    {
      "commit": "2b615ba29c4dfcf54aaf44955f2eac60f5080b2e",
      "tree": "0a2fe5f9243645a054d4aa094bff5a69cc1abb88",
      "parents": [
        "c9a060f2688599d4a402ee6234db46c2e9b7463f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 06 14:40:07 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 11 10:34:10 2017 +0000"
      },
      "message": "Make object allocation entrypoints only take a class.\n\nChange motivated by:\n- Dex cache compression: having the allocation fast path do a\n  dex cache lookup will be too expensive. So instead, rely on the\n  compiler having direct access to the class (either through BSS for\n  AOT, or JIT tables for JIT).\n- Inlining: the entrypoints relied on the caller of the allocation to\n  have the same dex cache as the outer method (stored at the bottom of\n  the stack). This meant we could not inline methods from a different\n  dex file that do allocations. By avoiding the dex cache lookup in\n  the entrypoint, we can now remove this restriction.\n\nCode expansion on average for Docs/Gms/FB/Framework (go/lem numbers):\n- Around 0.8% on arm64\n- Around 1% for x64, arm\n- Around 1.5% on x86\n\nTest: test-art-host, test-art-target, ART_USE_READ_BARRIER\u003dtrue/false\nTest: test-art-host, test-art-target,  ART_DEFAULT_GC_TYPE\u003dSS ART_USE_TLAB\u003dtrue\n\nChange-Id: I41f3748bb4d251996aaf6a90fae4c50176f9295f\n"
    },
    {
      "commit": "5e83eb74e8333d254bc2d72a84643249bad67b68",
      "tree": "693d00c8d8daf3f56ce0824ae88863336e1c6f58",
      "parents": [
        "4cd515521828b1f9ce0d5e2f545cb3376a94e9f3",
        "c52b26d4fb5b1ca91f34ce4b535b764853e538f6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 11 09:08:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 11 09:08:10 2017 +0000"
      },
      "message": "Merge \"Recognize getClass() in RTP.\""
    },
    {
      "commit": "f0acfe7a812a332122011832074142718c278dae",
      "tree": "49c4fc481cebd03323aaf0109066859165508303",
      "parents": [
        "91db41f315f6c2366b7098c531224bee01170364"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 09 20:54:52 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 10 21:26:23 2017 +0000"
      },
      "message": "Keep resolved String in HLoadString.\n\nFor the following reasons:\n- Avoids needing to do a lookup again in CodeGenerator::EmitJitRoots.\n- Fixes races where we the string was GC\u0027ed before CodeGenerator::EmitJitRoots.\n- Makes it possible to do GVN on the same string but defined in different\n  dex files.\n\nTest: test-art-host, test-art-target\nChange-Id: If2b5d3079f7555427b1b96ab04546b3373fcf921\n"
    },
    {
      "commit": "2e17788df086284845108c6b39954a5c74e93a69",
      "tree": "be70c7ed8a56e3deacec25274957f639d6680e65",
      "parents": [
        "26baea602e04c2bc4aed25f0d5257317f2973749",
        "3a2e78ebade9f7e0444be6f6817cbf116b34e7b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 10 18:40:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 10 18:40:26 2017 +0000"
      },
      "message": "Merge \"Fix some issues reported by Valgrind\""
    },
    {
      "commit": "c52b26d4fb5b1ca91f34ce4b535b764853e538f6",
      "tree": "9b734310200bb70cb42696082a55db70bed51b3c",
      "parents": [
        "b28c8749a52f4f3252fbfe8bfb5f9d7c7f980adf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 09:18:07 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 10 14:11:32 2017 +0000"
      },
      "message": "Recognize getClass() in RTP.\n\nAlso always keep around the resolved field\nin related HInstructions to avoid resolving it again\nand again.\n\nTest: test-art-host, 631-checker-get-class\n\nChange-Id: I3bc6be11f3eb175c635e746006f39865947e0669\n"
    },
    {
      "commit": "431121fb0e1fab93a550e71e1da22d3bf056bd95",
      "tree": "90b22140d9f336735530671a79392e899b59490b",
      "parents": [
        "91db41f315f6c2366b7098c531224bee01170364"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 09 14:02:45 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 09 22:10:44 2017 +0000"
      },
      "message": "The HBoundsCheck should be the index input of String.charAt.\n\nOtherwise, the charAt call may be licmed but the bounds check\nstay in the loop.\n\nbug: 33909430\nbug: 28330359\nTest: 632-checker-char-at-bounds\nChange-Id: I3cb749785c26ff8a016a7103899e9b19a24d5022\n"
    },
    {
      "commit": "3a2e78ebade9f7e0444be6f6817cbf116b34e7b1",
      "tree": "da8d025ac510215e89224fed43660749665c5e3d",
      "parents": [
        "91db41f315f6c2366b7098c531224bee01170364"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Jan 06 13:33:42 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Jan 09 12:20:04 2017 +0000"
      },
      "message": "Fix some issues reported by Valgrind\n\n* Update the target suppression file.\n* Disable the detection of mismatched free() / delete / delete []\ncalls, since it results in a lot of false positives (a known\nValgrind limitation associated with asymmetric inlining of\noperator new() and operator delete()).\n* Avoid a memory leak in the code generator tests, caused by the\nfact that the VIXL-based ARM code generator does not always use\nthe arena allocator.\n* Fix an access to uninitialized memory.\n\nTest: m valgrind-test-art-target\nTest: valgrind --leak-check\u003dfull --show-mismatched-frees\u003dno \\\n               --ignore-range-below-sp\u003d1024-1 \\\n               --suppressions\u003dvalgrind-target-suppressions.txt \\\n               dalvikvm ...\nChange-Id: I891a3247aa9828226b4e62c69d6e1c8398d757b8\n"
    },
    {
      "commit": "91db41f315f6c2366b7098c531224bee01170364",
      "tree": "6769cbbc2bd6a10e7df68c125201254627608d46",
      "parents": [
        "dd5a42753de9fe6d29ddd772971b8ab3c2ba68aa",
        "0e2fe0ff28a89721bcf225027093ac693d568a5c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 07 13:46:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 07 13:47:00 2017 +0000"
      },
      "message": "Merge \"Find the classpath boundary for being assignable to an interface.\""
    },
    {
      "commit": "0e2fe0ff28a89721bcf225027093ac693d568a5c",
      "tree": "556c3024dfe13b23292138851022e8b7ea49a246",
      "parents": [
        "6d2741f18be435c686bd774eecb7359c17ae2132"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 16:54:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 07 13:18:24 2017 +0000"
      },
      "message": "Find the classpath boundary for being assignable to an interface.\n\nTest: verifier_deps_test, test-art-host\n\nChange-Id: Icab3a5a9f94f6a38fa8ef320f93ac14691a732d3\n"
    },
    {
      "commit": "776ba7627542027e1e02ac0e5125fc6d782c5927",
      "tree": "6ffa8a51abd13d56307425942beb44c0bc25d66c",
      "parents": [
        "6d2741f18be435c686bd774eecb7359c17ae2132",
        "4d1be4920fefe2c1f7cb40357842c6587cdcc50e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 06 16:19:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 06 16:19:52 2017 +0000"
      },
      "message": "Merge \"Remove the IsInDexCache flag from HLoadString.\""
    },
    {
      "commit": "4d1be4920fefe2c1f7cb40357842c6587cdcc50e",
      "tree": "5583283f076b3fbd996bbdfbf69cc3ae3938ef95",
      "parents": [
        "16722603e0f0ef286085fbe9b2cbe9ccad86bfef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 06 14:43:11 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 06 14:45:17 2017 +0000"
      },
      "message": "Remove the IsInDexCache flag from HLoadString.\n\nThis flag was obsolete and always false.\n\nTest: m test-art-host\nChange-Id: Iabefc068908ff4f994b63e7e18a2a27c25a0919e\n"
    },
    {
      "commit": "a79003958e6844541bae7db4eafdb442f9ed31a5",
      "tree": "aeda4e76da6b7cf1285812e67b006002a269e1e0",
      "parents": [
        "a1d0d63614fad55e0169d76dcfab53cf6dbcc8e4",
        "4593f7d825c9b9c5fafdfe9009af080389d51cee"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 06 09:03:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 06 09:03:36 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Fix crash in Exchange for stack slots.\""
    },
    {
      "commit": "a1d0d63614fad55e0169d76dcfab53cf6dbcc8e4",
      "tree": "a2f84f281a1cb8addfb5e1c44bf711397387c77b",
      "parents": [
        "b51edffe1c0b331a4d4d5298938c7c1b31ebaf6a",
        "0f1cb17d23b664b96b6966e5d0f280df5925f56f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 06 09:00:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 06 09:00:16 2017 +0000"
      },
      "message": "Merge \"Actually record arrays in classpath.\""
    },
    {
      "commit": "16722603e0f0ef286085fbe9b2cbe9ccad86bfef",
      "tree": "2dbee5e5b5a5b068c0e16f1602608388555a51b8",
      "parents": [
        "f67dadb5550ee2bd9db0b7b0b75d8c44ddf170d2",
        "dba61481035b7944173181ec9ee02aea41dd0e29"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 05 18:16:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 05 18:16:15 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\"\""
    },
    {
      "commit": "f67dadb5550ee2bd9db0b7b0b75d8c44ddf170d2",
      "tree": "44f61f9bd0a674cae29c42e6dff72d4ff14189d0",
      "parents": [
        "cda4b75615f5f11c101ff846a05affda405b101b",
        "0960ac5a5a255bb3e8418e185914243aeef54a7c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 05 17:37:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 05 17:37:57 2017 +0000"
      },
      "message": "Merge \"MIPS64: Implement table-based packed switch\""
    },
    {
      "commit": "0f1cb17d23b664b96b6966e5d0f280df5925f56f",
      "tree": "2f93076ee34cd1754806a653a1119a5ec81e2c9e",
      "parents": [
        "77e9bddee965b1cefdc77264e4ed3a19e90cc2ac"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 05 15:23:19 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 05 15:23:19 2017 +0000"
      },
      "message": "Actually record arrays in classpath.\n\nWith https://android-review.googlesource.com/#/c/316151/,\nI was under the wrong impression arrays all have the same\naccess flags. They actually have the visibility of the inner\nmost component type.\n\nTherefore, we still need to record visibility of array types whose\ninnermost component type is in the classpath.\n\nTest: verifier_deps_test\nChange-Id: If7b1004efb679e320330258f42ced83b8eedae87\n"
    },
    {
      "commit": "4593f7d825c9b9c5fafdfe9009af080389d51cee",
      "tree": "e93acfde4f48a18a82c535e479beb33175c87999",
      "parents": [
        "001cd47ddd81e5bdd6cc2051beced4799124315a"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 29 16:21:49 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Jan 05 15:20:59 2017 +0000"
      },
      "message": "ARM: VIXL32: Fix crash in Exchange for stack slots.\n\nIn ParallelMoveResolverARMVIXL::Exchange(int mem1, int mem2)\nscratch general purpose register was used without any spilling\n(like in StoreToOffset) which led to lack of scratch register\nfor VLDR with big offset. Now it uses two scratch S-registers.\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: I0416a69e281d09a04dd1689efa5a8c1994c82638\n"
    },
    {
      "commit": "168768d203cbc4fb784490063fdc2d1c6b9c39f7",
      "tree": "981d3b26a81e4222e093a320b16ffece00f6a841",
      "parents": [
        "8174621224ecfc81dae10d1e3a317404c695a3ee",
        "0f001b7e83f672f77208ccfb941c870565d2b32a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 05 14:57:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 05 14:57:30 2017 +0000"
      },
      "message": "Merge \"Refine receiver type when inlining based on inline caches.\""
    },
    {
      "commit": "8174621224ecfc81dae10d1e3a317404c695a3ee",
      "tree": "fdcfa65d493183e0e807252dd3346d306c3ccee9",
      "parents": [
        "f0bfd75c19b109e6a84fb3c2a81d3933a95a2738",
        "692235eb54544277e2bde862caa6038472fab833"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 05 13:27:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 05 13:27:15 2017 +0000"
      },
      "message": "Merge \"MIPS32: java.lang.String.getChars\""
    },
    {
      "commit": "0f001b7e83f672f77208ccfb941c870565d2b32a",
      "tree": "48b35e3559e6fae4c80a3063559c4811a5ea7297",
      "parents": [
        "b28c8749a52f4f3252fbfe8bfb5f9d7c7f980adf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 04 16:46:23 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 05 13:15:16 2017 +0000"
      },
      "message": "Refine receiver type when inlining based on inline caches.\n\nWe know we\u0027re guarding for a specific type\n(eg foo.getClass() \u003d\u003d Foo.class), so we can propagate the\nexact type when building the callee graph.\n\nTest: ART_TEST_JIT\u003dtrue test-art-host\nChange-Id: I3e1858945afbb651cb8966b2b7d7755eccac09e1\n"
    },
    {
      "commit": "422c7c352adda88bcc96078641cb845fa3712292",
      "tree": "b2745c140c7dd7afc3cb3743051a3c21cd4e3600",
      "parents": [
        "001cd47ddd81e5bdd6cc2051beced4799124315a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 04 12:04:05 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 04 13:26:05 2017 -0800"
      },
      "message": "ART: Remove dequicken map from VerifiedMethod\n\nRemove now unused VerifiedMethod\u0027s dequicken map. Follow-up to\nc51c7ca7a779563d153c137c6bf01c3ea532a6c9.\n\nResults on a large well-known app in speed compile with -j4:\n\nBefore:\n dex2oat took [...] native alloc\u003d84MB [...] swap\u003d208MB [...]\nAfter:\n dex2oat took [...] native alloc\u003d76MB [...] swap\u003d208MB [...]\n\nBug: 34053922\nTest: m clean-oat-host \u0026\u0026 m test-art-host\nChange-Id: Ie95fd297299a0f5fac0c8c702773ee8372f662b6\n"
    },
    {
      "commit": "001cd47ddd81e5bdd6cc2051beced4799124315a",
      "tree": "b956e14e8e0195fd26687c8404bc48579682cc70",
      "parents": [
        "b28c8749a52f4f3252fbfe8bfb5f9d7c7f980adf",
        "78b3d5da6a0aad363cb7caf249b930cf4b168388"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 04 15:22:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 15:22:32 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Avoid scratch register exhaustion during ARM64 stack slot moves.\"\"\""
    },
    {
      "commit": "78b3d5da6a0aad363cb7caf249b930cf4b168388",
      "tree": "19822978e471a0edeeb79aaaa477805fcb6a6d56",
      "parents": [
        "6fc063cd8a399ffd70e0f077f58f1d65a15e9136"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 04 10:27:50 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 04 12:38:34 2017 +0000"
      },
      "message": "Revert \"Revert \"Avoid scratch register exhaustion during ARM64 stack slot moves.\"\"\n\nThis reverts commit 122ceb492f37e97d022cba2221a87368f1847f5f.\n\nTest: m test-art-target on ARM64, with and without read barriers/heap poisoning.\nBug: 32545705\nChange-Id: I4b447d762082eea8edfabeb070317d274e2f5bd0\n"
    },
    {
      "commit": "b28c8749a52f4f3252fbfe8bfb5f9d7c7f980adf",
      "tree": "a22f9dd659dd8b745d23c69b6d0bb063f43e6076",
      "parents": [
        "88268f08adca617c468c0c6cfbe6cdd9f1b027db",
        "8c3794ca997268c9434e4a8e8ddee2922aad2c99"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 04 12:38:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 12:38:30 2017 +0000"
      },
      "message": "Merge \"Support non-exact upper bound of HBoundType.\""
    },
    {
      "commit": "88268f08adca617c468c0c6cfbe6cdd9f1b027db",
      "tree": "7a7c63c576ee37ddfb48ec7b2b2875177c1142a9",
      "parents": [
        "6fc063cd8a399ffd70e0f077f58f1d65a15e9136",
        "2709b5fc91e9b151f0c48c52b3401d49e1e3c4ba"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 04 12:10:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 12:10:42 2017 +0000"
      },
      "message": "Merge \"Do not record dependencies on arrays.\""
    },
    {
      "commit": "6fc063cd8a399ffd70e0f077f58f1d65a15e9136",
      "tree": "a85f2c149956e1ddb90bc32950f5553cc0e0456a",
      "parents": [
        "4ca40e89aa514a4424b9ee177719b3b212d174d9",
        "992bdb951a1632ab6b864e403f011c4cef40763b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 04 11:47:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 11:47:51 2017 +0000"
      },
      "message": "Merge \"MIPS64: Drop redundant sign-extensions in integer conversions\""
    },
    {
      "commit": "4ca40e89aa514a4424b9ee177719b3b212d174d9",
      "tree": "d8fb9ecf26343ec33f4ed487983500fe5099e35e",
      "parents": [
        "7ee9ee9921683fd95c409f596bf981f055bbbe6f",
        "e114da261e49083beaddb8b13328b2a16a0e537e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 04 11:31:52 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 11:31:53 2017 +0000"
      },
      "message": "Merge \"MIPS32: Don\u0027t always do a null test in MarkGCCard\""
    },
    {
      "commit": "7ee9ee9921683fd95c409f596bf981f055bbbe6f",
      "tree": "c0fe13bfc20cc76d6f9d45e8d852cbed68341edc",
      "parents": [
        "059802455e80a92a0fac780246968588bb0cf88b",
        "db3deee6da91fb2407e56b3684b2787a1bb59753"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 04 11:30:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 11:30:15 2017 +0000"
      },
      "message": "Merge \"MIPS64: Improve integer comparison with constants\""
    },
    {
      "commit": "059802455e80a92a0fac780246968588bb0cf88b",
      "tree": "0e21efe27665f80998ac61f0f2e16be4cb2d4715",
      "parents": [
        "e2157fb29e02561bc3197ab49e6c1d9dfe801b81",
        "f8d19c285204cbe44309d560a35a0fbf667e3ca2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 04 10:06:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 10:06:27 2017 +0000"
      },
      "message": "Merge changes from topic \u0027VIXLUpdate\u0027\n\n* changes:\n  ARM: VIXL32: Use a default code buffer capacity of 1Kb.\n  ART: VIXL32: Fix assembler test after VIXL update.\n"
    },
    {
      "commit": "e2157fb29e02561bc3197ab49e6c1d9dfe801b81",
      "tree": "13c473634beee0557095486a7079e5e86488af9d",
      "parents": [
        "0ec9ac0a5f70cbbd8964d817d7d6234a91b6990c",
        "4375819125bce2132cde663ba5024e33d7bd2681"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 04 10:04:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 04 10:04:09 2017 +0000"
      },
      "message": "Merge \"MIPS64: Implement branchless HCondition for floats\""
    },
    {
      "commit": "b1c41c2431e8b144fcee62a1cb66bd5c61b87df3",
      "tree": "3bc9f767ba9d70ffcc2d44c5c96e6fab3e636cd3",
      "parents": [
        "db577b6911a1e4f7c40db49c95c23df3099d790a",
        "c51c7ca7a779563d153c137c6bf01c3ea532a6c9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 03 22:33:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 03 22:33:13 2017 +0000"
      },
      "message": "Merge \"Clean up VerifiedMethod.\""
    },
    {
      "commit": "c51c7ca7a779563d153c137c6bf01c3ea532a6c9",
      "tree": "3b562794d33e2f8f2adb9b4450e2c5d7043a1318",
      "parents": [
        "00797355fa88299db5b4ac941bbda17cd97ab39e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 15:46:48 2016 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 03 14:00:16 2017 -0800"
      },
      "message": "Clean up VerifiedMethod.\n\nRemove unused methods, and devirt map.\n\nResults on a large well-known app in speed compile with -j4:\n\nBefore:\n dex2oat took [...] native alloc\u003d149MB [...] swap\u003d208MB (218103808B)\nAfter:\n dex2oat took [...] native alloc\u003d84MB [...] swap\u003d208MB (218103808B)\n\nBug: 34053922\nTest: m clean-oat-host \u0026\u0026 m test-art-host\nChange-Id: I0791c1e4ec7a98ae3c98321c582974db8e26617d\n"
    },
    {
      "commit": "db577b6911a1e4f7c40db49c95c23df3099d790a",
      "tree": "72efe354360a86a7a19e4ab226a4cf30adffa843",
      "parents": [
        "595375fc44770bf3837e79cc49a0336bfd346377",
        "122ceb492f37e97d022cba2221a87368f1847f5f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 03 21:35:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 03 21:35:23 2017 +0000"
      },
      "message": "Merge \"Revert \"Avoid scratch register exhaustion during ARM64 stack slot moves.\"\""
    },
    {
      "commit": "122ceb492f37e97d022cba2221a87368f1847f5f",
      "tree": "3800e8499317efc4b5bca06e483b2bcbd9da8d9d",
      "parents": [
        "4ec76d28f0f808117272134347abf828eea80b91"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 03 21:34:59 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 03 21:34:59 2017 +0000"
      },
      "message": "Revert \"Avoid scratch register exhaustion during ARM64 stack slot moves.\"\n\nChecker test fails.\nBug: 32545705\n\nThis reverts commit 4ec76d28f0f808117272134347abf828eea80b91.\n\nChange-Id: Ief14978596341399404c504ec4ca6b68c54fd63c\n"
    },
    {
      "commit": "595375fc44770bf3837e79cc49a0336bfd346377",
      "tree": "1866e6a18f71917b243610d1e662b050ff893fbf",
      "parents": [
        "00797355fa88299db5b4ac941bbda17cd97ab39e",
        "c378980e32f0ec9ab7f1d0b87e1d5b97c1f3972c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 03 20:43:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 03 20:43:01 2017 +0000"
      },
      "message": "Merge \"MIPS64: Align register spills on 8-byte boundaries in slow paths\""
    },
    {
      "commit": "692235eb54544277e2bde862caa6038472fab833",
      "tree": "e33282f7de0e4aa8e76129597cc1ef2aa3fa13a3",
      "parents": [
        "00797355fa88299db5b4ac941bbda17cd97ab39e"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Mon Nov 21 16:04:53 2016 -0800"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Jan 03 12:07:45 2017 -0800"
      },
      "message": "MIPS32: java.lang.String.getChars\n\nUse memcpy(3) to copy characters under the assumption that memcpy()\nhas been hand optimized for best performance on the platform being\ntested.\n\nTest: run-test --optimizing 020-string\nTest: run-test 020-string\nTest: run-test --no-prebuild --optimizing 020-string\nTest: run-test --no-prebuild 020-string\nTest: run-test --optimizing 082-inline-execute\nTest: run-test 082-inline-execute\nTest: run-test --no-prebuild --optimizing 082-inline-execute\nTest: run-test --no-prebuild 082-inline-execute\nTest: mma -j2 ART_TEST_OPTIMIZING\u003dtrue test-art-target-run-test\nTest: booted MIPS32R2 emulator.\n\nNote: Tested against both the MIPS32R2, and MIPS64R6 emulators.\n\nChange-Id: I4192cf6244db120c8de5cc4932d4132acfc9740d\n"
    },
    {
      "commit": "4ec76d28f0f808117272134347abf828eea80b91",
      "tree": "be3b7c5125549dd772a622603e69353466f2f356",
      "parents": [
        "66e3919bc42ddca40302ce5ee32e3ade248dd2b6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 07 18:50:32 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 03 14:07:44 2017 +0000"
      },
      "message": "Avoid scratch register exhaustion during ARM64 stack slot moves.\n\nOn ARM64, do not limit the selection of a scratch register\nused in a move between two stack slots (or between two\ndouble stack slots) to VIXL\u0027s floating-point register pool,\nas it contains only one register (D31) and can be exhausted\nin some rare cases. Instead, query both the core and the FP\nregister pools.\n\nAdd a regression run-test (626-checker-arm64-scratch-register).\n\nTest: m test-art-target (on ARM64)\nBug: 32545705\nChange-Id: I6203a4340e3c8b4f4879c07ed1be4c433c311c0f\n"
    },
    {
      "commit": "66e3919bc42ddca40302ce5ee32e3ade248dd2b6",
      "tree": "3800e8499317efc4b5bca06e483b2bcbd9da8d9d",
      "parents": [
        "6a14c622700e088173ba909799c1e1785aeb4b34",
        "e36605910cb13da1440fb9d7a8293842a9209c97"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 03 11:13:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 03 11:13:51 2017 +0000"
      },
      "message": "Merge \"MIPS64: java.lang.String.getChars\""
    },
    {
      "commit": "4375819125bce2132cde663ba5024e33d7bd2681",
      "tree": "3457bce20da8c048d988c16e92ad54d4d09c50d1",
      "parents": [
        "6a14c622700e088173ba909799c1e1785aeb4b34"
      ],
      "author": {
        "name": "Tijana Jakovljevic",
        "email": "tijana.jakovljevic@imgtec.com",
        "time": "Fri Dec 30 09:23:01 2016 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Dec 30 09:53:12 2016 +0100"
      },
      "message": "MIPS64: Implement branchless HCondition for floats\n\nTest: mma test-art-target-run-test64 in QEMU\n\nChange-Id: I595b5b7ddf9ebb19e872ed85f2e4098a835d9214\n"
    },
    {
      "commit": "992bdb951a1632ab6b864e403f011c4cef40763b",
      "tree": "6a589b3b8b508e81832a8b1c00a2ffecf49b6d47",
      "parents": [
        "6a14c622700e088173ba909799c1e1785aeb4b34"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Dec 28 16:21:48 2016 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Dec 28 16:23:30 2016 +0100"
      },
      "message": "MIPS64: Drop redundant sign-extensions in integer conversions\n\nTest: mma test-art-target-run-test64 in QEMU\n\nChange-Id: I1dc7923d89528964771ddca288c5016d729cfb05\n"
    },
    {
      "commit": "db3deee6da91fb2407e56b3684b2787a1bb59753",
      "tree": "1a2faaf22b7bc253361af8adb67f305a30b3ef33",
      "parents": [
        "6a14c622700e088173ba909799c1e1785aeb4b34"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Dec 28 14:33:21 2016 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Dec 28 14:34:38 2016 +0100"
      },
      "message": "MIPS64: Improve integer comparison with constants\n\nTest: mma test-art-target-run-test64 in QEMU\n\nChange-Id: Ib29855a3e268e0333602f47185c520c6cfb16b59\n"
    },
    {
      "commit": "e114da261e49083beaddb8b13328b2a16a0e537e",
      "tree": "26e65dba14b521ed417cf0a693d00078267e2a76",
      "parents": [
        "6a14c622700e088173ba909799c1e1785aeb4b34"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Dec 26 14:21:43 2016 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Dec 26 14:23:53 2016 +0100"
      },
      "message": "MIPS32: Don\u0027t always do a null test in MarkGCCard\n\nTest: mma test-art-target-run-test on CI20\n\nChange-Id: I38fac492bb76b06b9cffc9be16944fb22ed2db70\n"
    },
    {
      "commit": "c378980e32f0ec9ab7f1d0b87e1d5b97c1f3972c",
      "tree": "11023f47469b9042091197ea3d2b5fb6e32cfb9e",
      "parents": [
        "07001c8540718117b91e8137804fa94d35cbb37a"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Dec 22 13:54:23 2016 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Dec 22 16:42:01 2016 -0800"
      },
      "message": "MIPS64: Align register spills on 8-byte boundaries in slow paths\n\n64-bit loads/stores would otherwise be split into pairs of\n32-bit ones.\n\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-run-test-optimizing (MIPS64R6) in QEMU\n\nChange-Id: I4846d11b52b71507dfd5ca2e27b3f2a5befcc58e\n"
    },
    {
      "commit": "f8d19c285204cbe44309d560a35a0fbf667e3ca2",
      "tree": "81930e48a85fe8efad1c14c308a9a3aebe9cc62d",
      "parents": [
        "f2665fa6e5ca54c7d4f084ec1fab9a20e96aea75"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Tue Dec 20 09:43:32 2016 +0000"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Dec 22 14:58:46 2016 +0000"
      },
      "message": "ARM: VIXL32: Use a default code buffer capacity of 1Kb.\n\nTest: mma test-art-host \u0026\u0026 mma test-art-target\n\nChange-Id: I238c40e775338b63cbdb8868c09d0555b0c3b077\n"
    },
    {
      "commit": "f2665fa6e5ca54c7d4f084ec1fab9a20e96aea75",
      "tree": "2de4c1166f3686b3e1b15c76b14082847985dff6",
      "parents": [
        "294e107e8947224ea6540af5068bce2492ee8d5b"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Dec 21 18:42:21 2016 +0000"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Dec 22 14:58:46 2016 +0000"
      },
      "message": "ART: VIXL32: Fix assembler test after VIXL update.\n\nVeneer pool is emitted 4 bytes later, so the expected output for\nthe test has been adjusted.\n\nTest: test-art-host\nTest: test-art-target\nChange-Id: I3d656224fd4151904b8096486adecb6ef1eafea6\n"
    },
    {
      "commit": "0960ac5a5a255bb3e8418e185914243aeef54a7c",
      "tree": "7163af0759328285dce0e3a5af13bd5b0cc042c0",
      "parents": [
        "07001c8540718117b91e8137804fa94d35cbb37a"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Dec 20 17:24:59 2016 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Dec 21 16:01:49 2016 -0800"
      },
      "message": "MIPS64: Implement table-based packed switch\n\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-run-test-optimizing (MIPS64R6) in QEMU\nTest: test-art-host-gtest\n\nChange-Id: I333dca43fca57ae7e6021bb84585487c889417c3\n"
    },
    {
      "commit": "dba61481035b7944173181ec9ee02aea41dd0e29",
      "tree": "8629775e657cc8968e2f8fa2af6256c7a58c7dd4",
      "parents": [
        "cb2ce333ee2d1053919fe0acc390369bea3ad77e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 08:20:29 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 11:43:14 2016 -0800"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\"\n\nA GetDeclaringClass()-\u003eGetDexCache() got inserted during the\nmerge/review process meaning that we would try to access incorrect\ndex-cache in obsolete methods in some situations.\n\nAlso when using tracing we would loop forever (or at least until an\nOOM error) in test 916 due to tracing forcing InterpretOnly mode\nmeaning methods would never be jitted.\n\nBug: 32369913\nBug: 33630159\n\nTest: ART_TEST_TRACE\u003dtrue \\\n      ART_TEST_JIT\u003dtrue   \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nThis reverts commit f6abcda293b115a9d7d8a26376ea2dcf2d1dc510.\n\nChange-Id: I0773bfcba52e3cd51a83be815c6a50c189558f48\n"
    },
    {
      "commit": "2709b5fc91e9b151f0c48c52b3401d49e1e3c4ba",
      "tree": "ece570d778e53e58f2b7f21097524dbea771f3dc",
      "parents": [
        "cb2ce333ee2d1053919fe0acc390369bea3ad77e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 15:06:46 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 16:03:14 2016 +0000"
      },
      "message": "Do not record dependencies on arrays.\n\nWe do not record dependencies on arrays with component types in\nthe compiled DEX files, as the only thing that might change is their\naccess flags. If we were to change these flags in a breaking way, we would\nneed to enforce full verification again anyways.\n\nSaves on doing type resolution during vdex update.\n\nTest: test-art-host\nChange-Id: Ib85e172a5cb99c2999eed8b6b37390aa6b5cac37\n"
    },
    {
      "commit": "8c3794ca997268c9434e4a8e8ddee2922aad2c99",
      "tree": "0f10bf1c45f5a9f6b0f00181f282f19248a7817d",
      "parents": [
        "b44553224c3a9ff38c32e34c583a114a5a7f8b50"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 09:25:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 15:22:18 2016 +0000"
      },
      "message": "Support non-exact upper bound of HBoundType.\n\nIt used to not affect the analysis, but in order to recognize:\nif (foo.getClass() \u003d\u003d Foo.class)\n\nWe now need to differentiate between an exact and a non-exact\nupper bound. Until now the \"exact\" flag on upper bounds was\nthere for convenience:\n1) re-use of the same data structure\n2) we mostly cared about HLoadClass as upper bounds.\n\nTest: test-art-host\nTest: master build with prebuilts\nTest: apk scanner\nChange-Id: I3a1f5e4d489a715a4545becee4c8c80f7d152fc0\n"
    },
    {
      "commit": "cb2ce333ee2d1053919fe0acc390369bea3ad77e",
      "tree": "9096226a3d8e3ad07e2785f1f8e1f23cb54805b6",
      "parents": [
        "bde1168f3b88b38330c9f859aaebf5daa3b68b57",
        "81f57d12de3f3983bbee1e8214a6088aa7bd504b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 14:12:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 21 14:12:41 2016 +0000"
      },
      "message": "Merge \"Update vdex in place if input_vdex_fd \u003d\u003d output_vdex_fd\""
    },
    {
      "commit": "bde1168f3b88b38330c9f859aaebf5daa3b68b57",
      "tree": "53a9f4dc746e0ddea822688733b5d67432e67a04",
      "parents": [
        "454f339775ffe9a2e465d9738068b812f165dd0d",
        "119e846b04c7c12c5b332122e71e9365b4a462f0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 13:30:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 21 13:30:49 2016 +0000"
      },
      "message": "Merge \"Point optimizations for vdex.\""
    },
    {
      "commit": "454f339775ffe9a2e465d9738068b812f165dd0d",
      "tree": "78fbef7c49ce92c6d9cbb7cc89fda2cd7aade511",
      "parents": [
        "56e2f9369988407ac8ede94dc342297bd97e75a0",
        "60ca949cc39936b1f18853922d0dcafdda3b9322"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 12:30:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 21 12:30:10 2016 +0000"
      },
      "message": "Merge \"Optimize OatWriter when we don\u0027t compile any method.\""
    },
    {
      "commit": "56e2f9369988407ac8ede94dc342297bd97e75a0",
      "tree": "5e94e7758b14464732c1b65a2860984a8ec9f4ad",
      "parents": [
        "294e107e8947224ea6540af5068bce2492ee8d5b",
        "c1a42cf3873be202c8c0ca3c4e67500b470ab075"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 12:17:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 21 12:17:43 2016 +0000"
      },
      "message": "Merge \"Remove soon to be obsolete call kinds for direct calls.\""
    },
    {
      "commit": "119e846b04c7c12c5b332122e71e9365b4a462f0",
      "tree": "d7d90b97e75e7427062ad8d3036921beb3192445",
      "parents": [
        "0239c439e4e493de9b6af1f04ace326c8210cb28"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 10:29:43 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 12:04:00 2016 +0000"
      },
      "message": "Point optimizations for vdex.\n\n- Do not record assignability due to not optimized CHECKCAST.\n- Do not record that j.l.Object must not be assignable to other types.\n- Chase the super class boundary to avoid recording a dependency\n  on a local class. This avoids doing type resolution of that class when\n  verifying the VerifierDeps.\n\nTest: test-art-host\nbug: 30937355\nChange-Id: Ibcee205451f23958c759ddcca7f88fe9003d37a9\n"
    },
    {
      "commit": "60ca949cc39936b1f18853922d0dcafdda3b9322",
      "tree": "0c412c019e56568ce2bb27b666c1030db52299be",
      "parents": [
        "06ce6d4359ed897f1d1b39be4e748f0c4f3ca2ff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 21:15:00 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 10:57:44 2016 +0000"
      },
      "message": "Optimize OatWriter when we don\u0027t compile any method.\n\n- Don\u0027t write any quickening info.\n- Don\u0027t visit methods.\n\nSaves ~20% of compilation times.\n\nTest: test-art-host\n\nChange-Id: Ib18fd06c0ca42308e1d81401de0ee3e6297de0ce\n"
    },
    {
      "commit": "81f57d12de3f3983bbee1e8214a6088aa7bd504b",
      "tree": "235f20ae3cf13d42d3d83d076b1a88ed29c2cc9d",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 13:17:09 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 10:53:37 2016 +0000"
      },
      "message": "Update vdex in place if input_vdex_fd \u003d\u003d output_vdex_fd\n\nTest: test-art-host\nbug: 30937355\nChange-Id: Ib8180d67996faec518d9092725b5de00d4dba9f6\n"
    },
    {
      "commit": "441a5e92ae49d4e78e26bc170732cb6e3d745b6b",
      "tree": "87881383fd09c1974b5ddcfc6be033a934b1a179",
      "parents": [
        "30bc64006c082935b10b500f60c0f7b6bac3b3e1",
        "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 21 09:26:36 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\""
    },
    {
      "commit": "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510",
      "tree": "a30ce596848d14c95a73449dbf2bfccf26a510b9",
      "parents": [
        "ce77fc0e7f60a15354bb20c356537cbf8b53b722"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\n\nFails in tracing mode\n\nBug: 32369913\nBug: 33630159\n\nThis reverts commit ce77fc0e7f60a15354bb20c356537cbf8b53b722.\n\nChange-Id: I1bdcf6ad467f2e31f9c5d0c3c987b90a4f5efc69\n"
    },
    {
      "commit": "0239c439e4e493de9b6af1f04ace326c8210cb28",
      "tree": "78b4bb48bf2f9a13b5dfc7fdc88e43e45a5e50c9",
      "parents": [
        "364fedb63fee3b08918ccd2adb44dbf35cc42724",
        "74da5290dd5cc040bee5430796715bd9302036c2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 20 20:46:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 20:46:20 2016 +0000"
      },
      "message": "Merge \"Fix transfer over rejected induction.\""
    },
    {
      "commit": "74da5290dd5cc040bee5430796715bd9302036c2",
      "tree": "b1dd4932ab1aa610509465e52dac09b06850650f",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 20 11:13:03 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 20 11:13:03 2016 -0800"
      },
      "message": "Fix transfer over rejected induction.\n\nRationale:\nWith the more precise rejection of narrowing\nlinear induction, parent rules should be\nprepared to reject failed transfers. Also\nadded a bit more comments to clarify rules.\nWith regression tests.\n\nBug: 33774618\nTest: test-art-host\nChange-Id: I4a206e51d4359ab383379914dd4697fc81903547\n"
    },
    {
      "commit": "07001c8540718117b91e8137804fa94d35cbb37a",
      "tree": "43f61685710ccf7e2f0f35671f69a8c2588c476d",
      "parents": [
        "1aa03b379f35f17eec1e88edfa9b345b7a992854",
        "6cb21552c97d0b8987b5defdd7407eda9b8e60bc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 20 17:49:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 17:49:03 2016 +0000"
      },
      "message": "Merge changes Ie74f2dbe,I092d2e95,I5a75f5c4\n\n* changes:\n  Fix 616-cha assumptions.\n  Fix JIT crash due to unverified dead code\n  Use interpret-only instead of verify-at-runtime when testing JIT\n"
    },
    {
      "commit": "1aa03b379f35f17eec1e88edfa9b345b7a992854",
      "tree": "90a81cfddb4bb33bb1c41260b3cc6e7ff305b322",
      "parents": [
        "1ffb6fc9210eabd6c272018aaae63a6ed46d89e1",
        "ca5b9dccced35a2dbf9626d92d3a44886aee097b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 20 16:42:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 16:42:09 2016 +0000"
      },
      "message": "Merge changes I8cc87bac,If1a92e47\n\n* changes:\n  Cleanup jvmti tests\n  Revert \"Revert \"Basic obsolete methods support\"\"\n"
    },
    {
      "commit": "857f058d4b7bd07c5c99eda416ad91516a10b4da",
      "tree": "aafff6fc7ac9578955661366e779c858945ae71c",
      "parents": [
        "0966558b075b9b454e1a7864306eb206bf0c0094"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 20 14:36:59 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 20 16:15:24 2016 +0000"
      },
      "message": "Fix JIT crash due to unverified dead code\n\nThe JIT compiler assumes that it only gets completely verified code. To\nwork around potential unverified dead code it uses kAccDontBotherCompile\nflag set during runtime verification. However, if a class is verified\nduring a prior dex2oat the flag is not persisted and JIT happily things\nthat everything is ok.\n\nThe simplest fix is to mark classes with potential unverified dex code\nas verify at runtime. We only do this for apps and assume that\neverything in the boot image is well formed.\n\nTest: m test-art-host\nBug: 31000839\nChange-Id: I092d2e9553cd1c577036d78e8563a7a39d6cb7b9\n"
    },
    {
      "commit": "1ffb6fc9210eabd6c272018aaae63a6ed46d89e1",
      "tree": "bc5718b5653137bc48c637c50a2b801ad1a86323",
      "parents": [
        "06ce6d4359ed897f1d1b39be4e748f0c4f3ca2ff",
        "517d9f6678c5d577f25777bc000a83afd5503874"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 13:52:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 13:52:48 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible.\""
    },
    {
      "commit": "c1a42cf3873be202c8c0ca3c4e67500b470ab075",
      "tree": "f2bffbd14e1f9d5429dd8514d19be4fa6dfa392f",
      "parents": [
        "06ce6d4359ed897f1d1b39be4e748f0c4f3ca2ff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Dec 18 15:52:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 13:29:45 2016 +0000"
      },
      "message": "Remove soon to be obsolete call kinds for direct calls.\n\nAnd remove CompilerDriver::GetCodeAndMethodForDirectCall in\npreparation of removing non-PIC prebuild and non-PIC on-device\nboot image compilation.\n\nTest: test-art-host test-art-target\nbug:33192586\nChange-Id: Ic48e3e8b9d7605dd0e66f31d458a182198ba9578\n"
    },
    {
      "commit": "06ce6d4359ed897f1d1b39be4e748f0c4f3ca2ff",
      "tree": "57f3da550807191fa705f2d639051f156f60c30e",
      "parents": [
        "eaaaaef76b7702af91cc599c0d020fa495990c7f",
        "f63f569eeefe3907c48a175494a2a0ba351b641a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 20 12:00:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 12:00:21 2016 +0000"
      },
      "message": "Merge \"MIPS64: Improve string and class loads.\""
    },
    {
      "commit": "eaaaaef76b7702af91cc599c0d020fa495990c7f",
      "tree": "4883c2503063f4fa79bc1e835f102a58d0476d5f",
      "parents": [
        "ee3a0bde75bfaf9cafce608d328ae3364ff89373",
        "568763405f6eb7cb78fd39272569e30fe21be85e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 09:06:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 09:06:18 2016 +0000"
      },
      "message": "Merge \"Sharpen HLoadClass from inliner.\""
    },
    {
      "commit": "f63f569eeefe3907c48a175494a2a0ba351b641a",
      "tree": "c2ba1621cbcd77571378b8261ec6d47c754953aa",
      "parents": [
        "2c43590dc2bb7fb4a3a015b1b65543bb8705ffe8"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Dec 13 17:43:11 2016 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Dec 19 14:47:16 2016 -0800"
      },
      "message": "MIPS64: Improve string and class loads.\n\nThis adds most kinds of string/class loads.\nJIT string/class loads are TBD separately.\n\nThis also fixes Mips64Assembler::LoadLabelAddress()\n(adding a constant to a 64-bit address must be done\nusing daddiu, not addiu).\n\nTest: test-art-host-gtest\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: \"make -j1 ART_TEST_DEFAULT_COMPILER\u003dfalse ART_TEST_OPTIMIZING\u003dtrue\n       ART_TEST_INTERPRETER\u003dfalse ART_TEST_JIT\u003dfalse\n       ART_TEST_PIC_TEST\u003dtrue test-art-target-run-test64\"\n\nChange-Id: I1f94ece4cd202382c11167e1ed958e9d08d92822\n"
    },
    {
      "commit": "b0b051ad6c9fab511346882650d5d689f805a980",
      "tree": "fe02f128018f1aa55be5c0425295ae0ef670de2c",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 17 09:04:53 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Dec 19 14:26:33 2016 -0800"
      },
      "message": "CHA guard optimization (elimination/hoisting).\n\nTest: manual by checking the dump-cfg output.\n\nChange-Id: I254e168b9a85d2d3d23e02eea7e129c1bc9ab920\n"
    },
    {
      "commit": "ce77fc0e7f60a15354bb20c356537cbf8b53b722",
      "tree": "b4301967c423ab190a4274409d99a3d6e23f0e8a",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 01:05:52 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 19 14:26:18 2016 -0800"
      },
      "message": "Revert \"Revert \"Basic obsolete methods support\"\"\n\nThis reverts commit b81a9840b44480bfeacd74b8d9f51e06f295411d.\n\nThere were 2 issues with the original CL\u0027s test 916-obsolete-jit that\ncaused it to sporadically fail.\n\nFirst, when checking if we had jitted the function under test in\n916-obsolete-jit we failed to check to see if the function \u0027doCall\u0027,\nwhich is used to work-around bugs in our deoptimization \u0026 compilation\nsystems, had also been jitted.\n\nIn the case where the \u0027sayHi\u0027 function had been jitted but the\n\u0027doCall\u0027 function had not we would (correctly) fail to redefine the\n\u0027Transform\u0027 class since we would not be able to deoptimize the \u0027sayHi\u0027\nfunction since it is under a quick_to_interpreter_bridge (runtime)\nframe.\n\nSecondly, the function Main.isInterpretedFunction was incorrect and\nwould always return false, regardless of the actual state of the\nfunction. This would cause the test to fail as the\nquick_to_interpreter_bridge frame prevented deoptimization of the\nobsoleted function. Usually the warm-up period was enough to make sure\nthe methods were jitted anyway but this was not guaranteed.\n\nBoth of these problems become more likely to occur on systems with\nmore cpu contention such as the buildbots.\n\nTest: stress --cpu 60 \u0026; while ./test/run-test --host --jit 916; do ; done\n\nReason for revert: Fixed bug in test that was causing failures.\n\nOriginal Tests:\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: If1a92e47b90965a7dc21c5826185debe62bd1554\n"
    },
    {
      "commit": "d54f43ca39dfa92f08c2d760123f185f0f65fb86",
      "tree": "a30ce596848d14c95a73449dbf2bfccf26a510b9",
      "parents": [
        "481593d87447cd69be2face67fa6af9bb993de8e",
        "e6bd0272b43bf73faabc64abc9c51ab8ed128308"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Dec 19 21:38:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 19 21:38:58 2016 +0000"
      },
      "message": "Merge \"Improved induction var and range analysis around types.\""
    },
    {
      "commit": "e6bd0272b43bf73faabc64abc9c51ab8ed128308",
      "tree": "d75a15baadf77a859cec6540d7cd10ce998e955a",
      "parents": [
        "2c43590dc2bb7fb4a3a015b1b65543bb8705ffe8"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Dec 16 13:57:52 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Dec 19 10:57:37 2016 -0800"
      },
      "message": "Improved induction var and range analysis around types.\n\nRationale:\nLots of code should not depend on int only. This CL generalizes\nthe kinds of types that can be optimized after analysis. As part\nof the CL, however, a minor cleanup regarding type safety of the\nstored induction var analysis results is required. This further\nimproved our int benchmark, and brings the long benchmark up-to-par.\n\nTest: m test-art-host-run-test\nChange-Id: I5dfb623dabf9113de90c2f6da99328dda8f8b60b\n"
    },
    {
      "commit": "568763405f6eb7cb78fd39272569e30fe21be85e",
      "tree": "10ecca06c9fa73a0d74b6dbdd7edb7c5c867014b",
      "parents": [
        "20b66e727a927267bc472958e86f9b4ada42c7fc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 16:09:08 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 16:55:11 2016 +0000"
      },
      "message": "Sharpen HLoadClass from inliner.\n\nAlso cleanup HLoadClass constructor.\n\nTest: ART_TEST_JIT\u003dtrue m test-art-host-run-test\n\nChange-Id: I8f803b05fb8a7267d1421ca9c032e624f27efed3\n"
    },
    {
      "commit": "c0e74baddb0750723b69f54c2bc4fcdaa4be63f8",
      "tree": "68d0ba21ff9f1e2234923bbc92d6e10696851959",
      "parents": [
        "d96b96dd97e7fc757ff9ccc10d329869ff24503f",
        "b1677e2ff07d7cea3cf7ee91d7df202975c11836"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 12:58:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 19 12:58:46 2016 +0000"
      },
      "message": "Merge \"Don\u0027t unquicken RETURN_VOID_NO_BARRIER with vdex.\""
    },
    {
      "commit": "685e4a325221a302255f4232edcbaa554159543d",
      "tree": "61d0e5a7b6f7ce94f7615b9015bb61f40f80a76e",
      "parents": [
        "76873db28c738bceef766047eb8452a6a5c447fc",
        "8f840f805579896809f6a17705402a85793ebce9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 09:31:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 19 09:31:19 2016 +0000"
      },
      "message": "Merge \"ARM: Fix vixl related branch issue in JNI.\""
    },
    {
      "commit": "8f840f805579896809f6a17705402a85793ebce9",
      "tree": "82426258ac64a453b869896f0ced39b038d9e1f8",
      "parents": [
        "b73e659be3fb6474ff3a993cd25ecbfa1cc4715c"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 15 17:56:27 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 09:31:04 2016 +0000"
      },
      "message": "ARM: Fix vixl related branch issue in JNI.\n\nFix VIXL asserts in EncodeLabelFor in JNI macro assembler when\nlabel is out of range of 16-bit branch (now a veneer is correctly\nused).\n\nbug:32545704\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: Ie6401394cf364daeaaf107b42275997d2edf5b6d\n"
    },
    {
      "commit": "76873db28c738bceef766047eb8452a6a5c447fc",
      "tree": "f83290e3aa64b4917c0a4bbfc1f34216c6007839",
      "parents": [
        "5b32b91d731d6187ada4c6fc804041b7b3b6903c",
        "c5fcb44405b436e8671e0c8c96b6d6d924649d1e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 09:29:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 19 09:29:55 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Implement some dispatch optimizations.\""
    },
    {
      "commit": "b1677e2ff07d7cea3cf7ee91d7df202975c11836",
      "tree": "6ed2f535f6e552281f10b0c1357aced68b8e117d",
      "parents": [
        "20b66e727a927267bc472958e86f9b4ada42c7fc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 16:23:16 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 09:09:20 2016 +0000"
      },
      "message": "Don\u0027t unquicken RETURN_VOID_NO_BARRIER with vdex.\n\nThe quickening of the RETURN_VOID instruction is based on\nlocal information (no final fields) that doesn\u0027t get affected\nby a boot image update.\n\nTest: test-art-host, verifier_deps_test\nbug:30937355\n\nChange-Id: I12b22d7fcda6dc681a32ff752c3871f6e84f19a1\n"
    },
    {
      "commit": "89b31a3369486c00761c5e287f286a921017a8a9",
      "tree": "294e6497a97867ac2d0b9b2f97f449b5d41c6bba",
      "parents": [
        "20b66e727a927267bc472958e86f9b4ada42c7fc",
        "a9dbe8333d4df5447157fe575a805003172af047"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 16 18:14:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 16 18:14:49 2016 +0000"
      },
      "message": "Merge \"Add HVariableInputSizeInstruction.\""
    },
    {
      "commit": "d27097a6c9459d38e7c9f92a1fcfa77352a9e07d",
      "tree": "ed3f77c1e2329761b70335ff5cdc646b0e5ca4d9",
      "parents": [
        "0f69f7425cb966a9172c1d46ac33b1de01469a3c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 16:14:39 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 16:14:39 2016 +0000"
      },
      "message": "Clear exception if FindClass fails.\n\nTest: verifier_deps_test.\nbug: 30937355\nChange-Id: I9916ec00010de012939462d4f30147e8b64fe279\n"
    },
    {
      "commit": "0f69f7425cb966a9172c1d46ac33b1de01469a3c",
      "tree": "38d5c81581702d34696057b8180ea5fc7eb63c5b",
      "parents": [
        "7e9a562e4276b0083b3656443d0adf96c5a83246",
        "ade72d6e03e2ca49a8d2691f35fe6e37d88a196d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 15:11:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 16 15:11:16 2016 +0000"
      },
      "message": "Merge \"Do not resolve types with vdex.\""
    },
    {
      "commit": "517d9f6678c5d577f25777bc000a83afd5503874",
      "tree": "3cff9450980d4e0a11468b24100331778cf16493",
      "parents": [
        "c5fcb44405b436e8671e0c8c96b6d6d924649d1e"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 12 15:51:15 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Dec 16 14:34:35 2016 +0000"
      },
      "message": "ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible.\n\nIf conditional branch\u0027s target is known to be not far from branch\n(within the range of 254 bytes), 16-bit encoding can be used.\nHowever, we can\u0027t assume this by default for branches to a basic\nblock or a slow path; if we do and fail the range requirement,\nveneer pool will be emitted.\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: I2fbe6d1a43bc2d1b54472c2c3fe05a575e5634f2\n"
    },
    {
      "commit": "c5fcb44405b436e8671e0c8c96b6d6d924649d1e",
      "tree": "8b527c4cc504be34298ee292854576b5867cdfbd",
      "parents": [
        "b73e659be3fb6474ff3a993cd25ecbfa1cc4715c"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Dec 02 19:19:58 2016 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Dec 16 14:34:28 2016 +0000"
      },
      "message": "ARM: VIXL32: Implement some dispatch optimizations.\n\nImplement dispatch optimizations for LoadClass, LoadString and\nHInvokeStaticOrDirect. Still need to implement JitTables.\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: I6e24bc11f3915aa92eede687a864b7ea3a6ab165\n"
    },
    {
      "commit": "ade72d6e03e2ca49a8d2691f35fe6e37d88a196d",
      "tree": "8f36d796776c4d18a17215de02d5fdd347d34ae6",
      "parents": [
        "7a8e16c827efc866d01b5cbca835b18fe29a83ab"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 15 13:20:02 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 13:35:51 2016 +0000"
      },
      "message": "Do not resolve types with vdex.\n\nWe don\u0027t need to, and it\u0027s time expensive.\n\ntest: test-art-host, 2x faster vdex compilation time.\nbug: 30937355\n\nChange-Id: Ic04ebfee9172ed676fbb38e6901615ed3473352a\n"
    },
    {
      "commit": "7e9a562e4276b0083b3656443d0adf96c5a83246",
      "tree": "a15e93cb1aab2cf4c336d31237d988032c82d8ab",
      "parents": [
        "913e6e6f36f6feb1d11e7c095dbbc9cea7ab01be",
        "644032c817615210c1e17fe27010853abd8714e5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 13:00:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 16 13:00:03 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Do a code cleanup.\""
    },
    {
      "commit": "4c1667fd521f6e11367fd262f9bd6474f48fb3e7",
      "tree": "2dcb1fff3b27c22d4cdfc76340aa27deb43b4f0f",
      "parents": [
        "a3dccf967a8c9e0cc84b6789213772369e4a2a2f",
        "ed015acdd0fbb1b837b3f74e8c5f624956189691"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 08:57:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 16 08:57:37 2016 +0000"
      },
      "message": "Merge \"Flush JIT data cache when committing code.\""
    },
    {
      "commit": "2c43590dc2bb7fb4a3a015b1b65543bb8705ffe8",
      "tree": "b43632311dfbd253464d968a97e93e3b30d195ba",
      "parents": [
        "e9f3269b5417806987dc1b3e56e05767cad0716d",
        "ab2270f8f7ecd93c7ba353dd4e300669de3e7aee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 15 21:50:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 21:50:00 2016 +0000"
      },
      "message": "Merge \"Fixed signal 11 bug by not testing resolved method first.\""
    },
    {
      "commit": "e9f3269b5417806987dc1b3e56e05767cad0716d",
      "tree": "a4bca84637a396922976cc64f93bcdd47281a03a",
      "parents": [
        "45d75c6194075f1c4e3372159cca533a301cabfd",
        "d0a022d76db4b79d105608e7bafab4c17e8ba510"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 15 21:33:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 21:33:55 2016 +0000"
      },
      "message": "Merge \"Fine tuning the induction analysis.\""
    },
    {
      "commit": "a9dbe8333d4df5447157fe575a805003172af047",
      "tree": "cfc116d6196a39eafd9eca891d13c39126d56adc",
      "parents": [
        "bdca0a27eb034152afba52f1d499d773b81908df"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 15 12:02:53 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 15 12:02:53 2016 -0800"
      },
      "message": "Add HVariableInputSizeInstruction.\n\nMake HPhi and HInvoke subclasses of the new instruction.\n\nTest: m test-art-host-run-test\nChange-Id: I303c725876f1f4407b98702d92370be25193fc53\n"
    },
    {
      "commit": "d0a022d76db4b79d105608e7bafab4c17e8ba510",
      "tree": "28fe73f251041ea8dd2ddfbb801d780fbce6968c",
      "parents": [
        "ea63e4d1c3473d1115c1aef674056d035cf67472"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Dec 13 11:22:31 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Dec 15 11:31:12 2016 -0800"
      },
      "message": "Fine tuning the induction analysis.\n\nRationale:\nBased on some self-imposed \"blind\" testing, improved\nthe induction variable analysis for typical cases\nthat provide a bit more elaborate HIR.\n\nTest: test-art-host\nChange-Id: I6e6bbf99928c29973178fa48f3942b14bf069944\n"
    }
  ],
  "next": "ab2270f8f7ecd93c7ba353dd4e300669de3e7aee"
}
