)]}'
{
  "log": [
    {
      "commit": "fbfc3945c1877cfb97ebd217ccceb98abc4bc441",
      "tree": "19259839bdeec7d62f8cb9724ddfad493545854c",
      "parents": [
        "ae616fa0e828cd6cbbae53edf3cf14338ad49dd9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 27 16:51:35 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 27 16:56:42 2017 +0100"
      },
      "message": "Remove ClassLinker::SetEntryPointsToCompiledCode().\n\nThis function was used only for tests and it was essentially\njust calling ArtMethod::SetEntryPointFromQuickCompiledCode()\nin a very obscure way and required the memory before the\ncode pointer to contain a non-zero code size.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/445648\nthat removed a problematic use of the function, calling it\nwith a pointer to an entrypoint instead of a pointer to\ncompiled managed code, i.e. without the pre-header that\nshould contain the non-zero code size.\n\nTest: m test-art-host-gtest\nChange-Id: I483450832443ea0589eb41c74491384bcd5d6ab8\n"
    },
    {
      "commit": "62a96c99846b74eb64a28cfa05730191710e6974",
      "tree": "741ac7d15f7af136b61aa4f8ba1d4fbccfe0e36d",
      "parents": [
        "aaeeb688c2f34f8572e14f3f05977cac1316267c",
        "34ed868f9384ab37da1119b3d84bcd24fd3c91a7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 26 23:47:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 26 23:47:44 2017 +0000"
      },
      "message": "Merge \"Revert \"Avoid creating verified methods for non quickening filters\"\""
    },
    {
      "commit": "71da4878f2e3f0dc8b7c3a31b4f57172fde5f378",
      "tree": "ae560b5e56ce09cfaaf1f3c04e96366f193c4180",
      "parents": [
        "b22ae40038aeeebb16936fbf62b48f080d6e7ef4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 10:02:07 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 26 11:23:03 2017 -0700"
      },
      "message": "ART: Move simulator to art/\n\nMove the simulator library out of the runtime directory. Let\u0027s not\npollute the runtime library.\n\nTest: m\nChange-Id: I351a0061ae628c3af0462b72d4de727db296ec23\n"
    },
    {
      "commit": "b3d79e430a4c0a447121890514cdee48e4675df4",
      "tree": "ebc0f5fc16d5caf009f59550407abadbc40415ff",
      "parents": [
        "03ce1df8f9b1b8d207fc685fd084b96697a50182"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Tue Jul 25 11:20:52 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Tue Jul 25 14:27:30 2017 +0200"
      },
      "message": "MIPS: Add maddv/msubv MSA instructions\n\nAdded maddv.df, msubv.df, fmadd.df and fmsub.df MSA instructions\nin assembler, disassembler and tests.\n\nThese instructions are needed for multiplyaccumulate support in\nART Vectorizer.\n\nTest: mma test-art-host-gtest\n\nChange-Id: Idef7faaeed47f1fef83fa58676ce664afe24ffe8\n"
    },
    {
      "commit": "03ce1df8f9b1b8d207fc685fd084b96697a50182",
      "tree": "226b0b4a98af714d848796b8c083f134f6a80fd4",
      "parents": [
        "ff80dfc82a3e5177d45099c090e33f1a060f9152",
        "786120815be223290f1cb24e88c1be9d044c8dca"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 25 08:31:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 25 08:31:12 2017 +0000"
      },
      "message": "Merge \"Fix x86 and x64 codegens for 8/16 stores.\""
    },
    {
      "commit": "ff80dfc82a3e5177d45099c090e33f1a060f9152",
      "tree": "9ee750c2766161d310a625450ada830bc91230b2",
      "parents": [
        "9710fbaea9022149887da4459b47011a803c76fb",
        "56fe32eecd4f25237e66811fd766355a07908d22"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 25 08:23:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 25 08:23:46 2017 +0000"
      },
      "message": "Merge \"Jit Code Cache instruction pipeline flushing\""
    },
    {
      "commit": "34ed868f9384ab37da1119b3d84bcd24fd3c91a7",
      "tree": "8ec833faeb58638c943d0815b4a2abd6b3a790ed",
      "parents": [
        "acae6dbe80d07a26a973587b6f838198e13e66c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 21:41:13 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 23:06:53 2017 -0700"
      },
      "message": "Revert \"Avoid creating verified methods for non quickening filters\"\n\nThis reverts commit 2848a5f8df6a82ff436c67f6b92c8f0d49ae6788.\n\nSuperseded by commit 0733dc87518d2c8fc1ba2196c9f5cc9729de7c20.\n\nBug: 63467744\nTest: Compile an app with compiler-filter\u003dverify\nTest: test-art-host\nChange-Id: Ieb894b6defed1a1ee14425baeda1f77ef138e2a4\n"
    },
    {
      "commit": "acae6dbe80d07a26a973587b6f838198e13e66c3",
      "tree": "d97499be4cad9a785304fac065be8dab4b0fa2b0",
      "parents": [
        "e88c2d244c4d6359f731f6fab0d09aec218a1a46",
        "6005a87fa5524bd44c36f4dd6adca92e2d4bc9b1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 25 02:11:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 25 02:11:20 2017 +0000"
      },
      "message": "Merge \"Added a few idiomatic x86 SSE instructions.\""
    },
    {
      "commit": "e88c2d244c4d6359f731f6fab0d09aec218a1a46",
      "tree": "ce95ffd3744e9ad7409d831efc4c8407b327229b",
      "parents": [
        "af89a91f05e849a06abfd50b8a2e1d2d81357abd",
        "010f5ccfb666994c8c65d5b4f8a15208da3aee39"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 25 01:16:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 25 01:16:44 2017 +0000"
      },
      "message": "Merge \"Allow failure in RecordClassStatus for uses-library classes\""
    },
    {
      "commit": "6005a87fa5524bd44c36f4dd6adca92e2d4bc9b1",
      "tree": "48a809ead7eed14899ffc1845e656df9bde92b41",
      "parents": [
        "194cf5f7db9762c17a0f2c91308cb060db08f571"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 24 13:33:39 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 24 17:11:08 2017 -0700"
      },
      "message": "Added a few idiomatic x86 SSE instructions.\n\nTest: test-art-host-gtest-assembler_x86[_64]_test\nChange-Id: I4f98cb6c9be82f1cb62276ee9331734b86111b5c\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "010f5ccfb666994c8c65d5b4f8a15208da3aee39",
      "tree": "f4c39705172f1cfcdb876b4ca1cd0a656f1c8352",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 24 15:53:46 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 24 16:03:59 2017 -0700"
      },
      "message": "Allow failure in RecordClassStatus for uses-library classes\n\nThe problem was that recursive initialization attempts to initialize\nclasses in used libraries for the app image case. This meant we\nattempted to add an oat class status for the uses-library classes.\n\nAdding a regression test is infeasible since run-test doesn\u0027t support\nuses-library.\n\nTest: test-art-host\nBug: 63994775\nChange-Id: If229d5deb3a0e5662839b0120c4c6d52bdcdcc57\n"
    },
    {
      "commit": "b67d0c0fcef5e76e579246d48ec005fe31e64f97",
      "tree": "343117b8181faeed565ff244c5dedc9d0a8d1775",
      "parents": [
        "2ae4bc9f5b620bc768e4ae2ecab641a06a488a70",
        "cade5c3c75588da6d873df727acdaf3378a66efa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 24 21:00:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 24 21:00:39 2017 +0000"
      },
      "message": "Merge changes I87b3fcb3,I971edf31,I5218a57c\n\n* changes:\n  Track class initializing in transaction\n  Move transaction creation to runtime\n  Test case for clinit support in app image\n"
    },
    {
      "commit": "56fe32eecd4f25237e66811fd766355a07908d22",
      "tree": "7c2c75d54edf0865598c106cb013f8c3794bd767",
      "parents": [
        "84b65e977302e1cf16d188636c22c164c7793554"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 21 11:42:10 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jul 24 17:29:40 2017 +0100"
      },
      "message": "Jit Code Cache instruction pipeline flushing\n\nRestores instruction pipeline flushing on all cores following crashes\non ARMv7 with dual JIT code page mappings. We were inadvertantly\ntoggling permission on a non-executable page rather than executable.\n\nRemoves the data cache flush for roots data and replaces it with a\nsequentially consistent barrier.\n\nFix MemMap::RemapAtEnd() when all pages are given out. To meet\ninvariants checked in the destructor, the base pointer needs to be\nassigned as nullptr when this happens.\n\nBug: 63833411\nBug: 62332932\nTest: art/test.py --target\nChange-Id: I705cf5a3c80e78c4e912ea3d2c3c4aa89dee26bb\n"
    },
    {
      "commit": "786120815be223290f1cb24e88c1be9d044c8dca",
      "tree": "556be2e1337a82ed7c7b4b419520bef6569e2fd7",
      "parents": [
        "ad76ef641d8570affb2e3c728b40876c4ed53fac"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 24 14:18:53 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 24 15:01:56 2017 +0100"
      },
      "message": "Fix x86 and x64 codegens for 8/16 stores.\n\nTest: 660-store-8-16\nChange-Id: I6124818894205ebeed83929f3ff00bf2733292bf\n"
    },
    {
      "commit": "ad76ef641d8570affb2e3c728b40876c4ed53fac",
      "tree": "3be2b0da866469391593f6c5142c6e4937d5a2d9",
      "parents": [
        "28e535bd94c84d1019f18c46e189928435e2938d",
        "bf9e21a33404440e1723e738975e23f7c1334e18"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 24 11:33:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 24 11:33:49 2017 +0000"
      },
      "message": "Merge \"Improve SchedulingLatencyVisitorARM on HCondition latency settings.\""
    },
    {
      "commit": "cade5c3c75588da6d873df727acdaf3378a66efa",
      "tree": "126fc494a05e39d0b2566a608f15e140e5eb915f",
      "parents": [
        "16d1dd86dca33520b44d9802695e19d3b658af3e"
      ],
      "author": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Thu Jul 20 17:56:26 2017 -0700"
      },
      "committer": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Sat Jul 22 16:33:20 2017 -0700"
      },
      "message": "Track class initializing in transaction\n\nAdd a field and a corresponding constructor to transaction which keeps\ntrack of the class that the transaction is initializing.\n\nTo implement constraints for \u003cclinit\u003e behaviors, the transaction needs\nto know which class it is initializing.\n\nTest: make test-art-host -j64\nChange-Id: I87b3fcb3ef15914c79c6687ec8a87058265eaead\n"
    },
    {
      "commit": "16d1dd86dca33520b44d9802695e19d3b658af3e",
      "tree": "c273a6256e2b8ea49e9e1935830fe9d1748ebcf4",
      "parents": [
        "3a3abd08ca92636a706c0efa777c0410258ebd5f"
      ],
      "author": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Thu Jul 20 17:56:26 2017 -0700"
      },
      "committer": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Sat Jul 22 16:07:03 2017 -0700"
      },
      "message": "Move transaction creation to runtime\n\nMove the transaction creation to runtime instead of passing a pointer to\nruntime when EnterTransactionMode. Because later there will be more\nplaces to create transaction so this makes the code cleaner and more\ncompact.\n\nTest: make test-art-host -j64\nChange-Id: I971edf3110eb6634b6e0f7f56256be04517a5281\n"
    },
    {
      "commit": "bf9e21a33404440e1723e738975e23f7c1334e18",
      "tree": "c25c5a814530c949745aa1f170505319f57a0d0e",
      "parents": [
        "89ae0f42e38a2f985ac404830f2a05fecf9547e2"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Jun 15 11:01:11 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 21 13:50:00 2017 +0000"
      },
      "message": "Improve SchedulingLatencyVisitorARM on HCondition latency settings.\n\nTest: m test-art-host\nTest: m test-art-target\n\nChange-Id: Ieb42a8511036c86a9d99972dfd7d745f64559685\n"
    },
    {
      "commit": "c73753f70ab4fc9a166637bee514b292f0fa0109",
      "tree": "a464e300d44b5a3eca10cb00cc42be7c1ab9da96",
      "parents": [
        "530a6b6902b50db43659757a6270b7d111d93a2c",
        "07bfbace6f835e6c748fd68ec7624992478b16c1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 21 09:41:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 21 09:41:58 2017 +0000"
      },
      "message": "Merge \"Hash-based DexCache methods array.\""
    },
    {
      "commit": "a9894d24088ed066aa534ba7c157ab2f1e11cd71",
      "tree": "6d72affd2c3fba3d9713f34d11e13aceddd77d91",
      "parents": [
        "2f1d924e9cd34d081d6c37332e4e8f0f0d191b85",
        "e01b6f674a865a3aef7d66cd91a2d2e226587b50"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 20 18:31:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 18:31:23 2017 +0000"
      },
      "message": "Merge \"Move IsVeryLarge check before we create verification results\""
    },
    {
      "commit": "e01b6f674a865a3aef7d66cd91a2d2e226587b50",
      "tree": "1d99c6889746d829a86b375b3d88552f29461b7e",
      "parents": [
        "e8f48da635c4d07bbe431e5819da8e1fad91a8ef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 19 16:55:04 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 20 09:36:26 2017 -0700"
      },
      "message": "Move IsVeryLarge check before we create verification results\n\nOtherwise we can end up creating verification results when they are\nnot actually needed (if the compiler filter was \u003e\u003d quicken).\n\nBug: 63467744\nTest: test-art-host\nChange-Id: Ied2a12e0e4c2010f3f660e278c3a5111545ba251\n"
    },
    {
      "commit": "07bfbace6f835e6c748fd68ec7624992478b16c1",
      "tree": "5d094a00fbc90455bd9b53e042cf8b4fe8433462",
      "parents": [
        "ba118827465d12177f3996e50133960087b1c916"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 06 14:55:02 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 16:33:00 2017 +0100"
      },
      "message": "Hash-based DexCache methods array.\n\nTotal boot*.art size for aosp_angler-userdebug:\n  - arm64:\n    - before: 11603968\n    - after: 10129408 (-1.4MiB, -12.7%)\n  - arm:\n    - before: 8626176\n    - after: 7888896 (-0.7MiB, -8.5%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nTest: Build aosp_mips64-eng\nBug: 30627598\nChange-Id: I7f858605de5f074cbd7f0d9c4c072fbd44aee28f\n"
    },
    {
      "commit": "331f4c4e287791611733120c1a1c2afd55ecdd65",
      "tree": "1fcf7810c6c8e2df8b6191bb14a69084f3c7cf11",
      "parents": [
        "13c8343a3394414c90f2fcd1e8efff70e7d2387e",
        "ba118827465d12177f3996e50133960087b1c916"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 20 14:09:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 14:09:32 2017 +0000"
      },
      "message": "Merge \"ART: Change method lookup to be more consistent to JLS and the RI.\""
    },
    {
      "commit": "ba118827465d12177f3996e50133960087b1c916",
      "tree": "f39728cdafc7810004d51c0bef2728b98993daa9",
      "parents": [
        "64a102dde8c5daad83b991710decb418ce43aac5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 12 15:41:56 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 13:35:06 2017 +0100"
      },
      "message": "ART: Change method lookup to be more consistent to JLS and the RI.\n\nThe method lookup for different invoke types was previously\nwidely different and didn\u0027t work well with the dex cache\nmethod array where we have only a single slot for each\nMethodId. The new behavior is to perform the same lookup for\nall cases, distinguishing only between interface and\nnon-interface referencing class, and to further align the\nbehavior with the JLS and the RI. Where the JLS conflicts\nwith the RI, we follow the JLS semantics.\n\nThe new lookup for class methods first searches the methods\ndeclared in the superclass chain (ignoring \"copied\" methods)\nand only then looks in the \"copied\" methods. If the search\nin the superclass chain finds a method that has not been\ninherited (i.e. either a private method or a package-access\nmethod where one of the classes in the chain does not belong\nto the same package, see JLS 8.4.8), we still search the\n\"copied\" methods as there may actually be a method inherited\nfrom an interface. This follows the JLS semantics where\ninherited methods are included in the search (JLS 15.12.2.1)\nbut conflicts with the RI where the private or\npackage-access method takes precedence over methods\ninherited from interfaces.\n\nNote that this search can find an accessible method that is\nnot inherited by the qualifying type, either for a package\naccess method when the referrer is in the same package but\nthe qualifying type is in another package, or for a private\nmethod where the referrer is in the same class but the\nqualifying type is actually a subclass. For the moment we\nallow such calls and we shall consider whether to throw\nan IncompatibleClassChangeError in this situation in future\nto comply with JLS 15.12.4.3.\n\nThe new lookup for interface methods searches the interface\nclass, then all the superinterfaces and then the\njava.lang.Object class, see implicitly declared methods in\ninterfaces, JLS 9.2. The search for the maximally-specific\nnon-abstract superinterface method is not yet implemented,\nbut the difference should be difficult to observe as the\nusual subsequent call to FindVirtualMethodForInterface()\nshould yield the same result for any matching method.\n\nThe new test 162-method-idx-clash exposes several cases\nwhere we previously completely messed up due to the effects\nof the DexCache, or where we were out of line with the RI.\nIt also tests a case where the JLS and the RI disagree and\nwe follow the JLS.\n\nTest: art/test/run-test --host --jvm 162-method-resolution\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --interp-ac\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nBug: 62855082\nBug: 30627598\nChange-Id: If450c8cff2751369011d649c25d28a482a2c61a3\n"
    },
    {
      "commit": "13c8343a3394414c90f2fcd1e8efff70e7d2387e",
      "tree": "c71c2e5775fe82242034c00d0a5c69c4116169bd",
      "parents": [
        "3579eb29f88a9fe4040e4d212e0acaa2e0690946",
        "4147fcc43c2ee019a06e55384985e3eaf82dcb8c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 11:32:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 11:32:20 2017 +0000"
      },
      "message": "Merge \"MIPS: Reduce Baker read barrier code size overhead\""
    },
    {
      "commit": "3579eb29f88a9fe4040e4d212e0acaa2e0690946",
      "tree": "4b732d4f9aed44e97066b8277a4880d6cbe8e081",
      "parents": [
        "24f4f7956edeffb1ae41809e09f14b6d5e7875c8",
        "420ee30f4c0f8a5bb6048df4fa27e5432ded893b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 20 10:32:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 20 10:32:35 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Merge (un)signed extensions and integer additions\""
    },
    {
      "commit": "4147fcc43c2ee019a06e55384985e3eaf82dcb8c",
      "tree": "11ec92efbfddf7736bbc74ed35fcfb3756bfcfb0",
      "parents": [
        "e8f48da635c4d07bbe431e5819da8e1fad91a8ef"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Sat Jun 17 19:57:27 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Jul 19 15:03:10 2017 -0700"
      },
      "message": "MIPS: Reduce Baker read barrier code size overhead\n\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: same tests as above on CI20\nTest: booted MIPS32 and MIPS64 in QEMU with poisoning\n      in configurations:\n      - with Baker read barrier thunks\n      - without Baker read barrier thunks\n      - ART_READ_BARRIER_TYPE\u003dTABLELOOKUP\n\nChange-Id: I79f320bf8862a04215c76cfeff3118ebc87f7ef2\n"
    },
    {
      "commit": "1a088d440a3fac4e477a11af68adae9dcd3afd00",
      "tree": "fbec331c6c0274af132bb2df38b209477ee9224f",
      "parents": [
        "57fe2725629681c8a68f6ba5b58d87304ca3f0b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 18 11:43:57 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 19 09:55:34 2017 -0700"
      },
      "message": "Use AtomicDexRefMap for compiled classes\n\nChanged compiled_classes_ to use an AtomicDexRefMap and deleted\nthe lock since it was no longer necessary.\n\nThis map is more compact than a SafeMap. RAM numbers for verify\nfilter on a large app (host arm compile):\n\nMaximum resident set size (kbytes): 250012-\u003e243472\nnative alloc: 19284128B-\u003e13951600B\n\nBug: 6346774\nTest: test-art-host\nChange-Id: Iace66945b49433f353603a713593c53be6893cc5\n"
    },
    {
      "commit": "01db5f78f627cc64f80b0c0a4eedd0a3dc8b46ca",
      "tree": "d1ee9267408e2f4d777d28bfc3f65c480f7ecd3f",
      "parents": [
        "c5b1b067fb91c10c75dd0e6dbfd91bebe74347d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 19 15:05:49 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 19 15:05:49 2017 +0100"
      },
      "message": "Pass the logger to the JIT compiler.\n\nTo avoid effects of concurrent method entrypoints update,\njust pass the logger to the JIT compiler, which will invoke\nit directly with the pointer to the newly allocated code.\n\nTest: test.py --trace\nChange-Id: I5fbcd7cbc948b7d46c98c1545d6e530fb1190602\n"
    },
    {
      "commit": "e431e2758d62cf56f7f347f5a8c9d79e41b6dcd7",
      "tree": "b8733533e2478069aabbdc3a34d0f40aff33e1b1",
      "parents": [
        "b98d384eb424ad7e1dc9816392ded33dce0e0372"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 18 16:53:49 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 18 18:25:55 2017 -0700"
      },
      "message": "art: use proper nativehelper headers\n\nlibnativeheader exports headers under nativeheader. These were\navailable before incorrectly as global headers in order to give\naccess to jni.h.\n\nTest: modules using art find headers\nBug: 63762847\nChange-Id: I5c820d677e94e07b2859e78610bc997fe51b41dc\n"
    },
    {
      "commit": "420ee30f4c0f8a5bb6048df4fa27e5432ded893b",
      "tree": "fd72cba9ed09cf78e9377677fd144821fd9f6743",
      "parents": [
        "2f0ac4fb4486e7d9e5c1545d45a2b9b818a80dc3"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Feb 21 18:10:26 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Jul 18 20:19:58 2017 +0100"
      },
      "message": "ARM: VIXL32: Merge (un)signed extensions and integer additions\n\nTest: m test-art-target-run-test-551-checker-shifter-operand\nChange-Id: I041e80e51bf0954b38ab20dfa9b14aa7f6d6c53b\n"
    },
    {
      "commit": "2f0ac4fb4486e7d9e5c1545d45a2b9b818a80dc3",
      "tree": "5f9665e7b3299f911a2a305e17c5e678cdd51c49",
      "parents": [
        "9fb4e85d6e42b3f060ddcefcbf39bdfec656fc52",
        "2bff9ca67a3e945f7c2ca7e8a075e2d91637b01b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 18 15:45:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 15:45:12 2017 +0000"
      },
      "message": "Merge changes I01b45c86,I10307aea,Iefccd6ff,Ibbda8e9a,I71a7f59b\n\n* changes:\n  ART: Remove more object_callbacks.h includes\n  ART: Replace or remove some ObjectCallback Walk functions\n  ART: Remove old visit functions\n  ART: Use VisitObjects visitor functions\n  ART: Add templated VisitObjects\n"
    },
    {
      "commit": "9fb4e85d6e42b3f060ddcefcbf39bdfec656fc52",
      "tree": "80e525f139b88754c23272dd5cf612312b7a61ef",
      "parents": [
        "d44c0d8c7f96644f8176e493de2fbde3eb198bb4",
        "08490b84048a0267694268185441b70cfa090185"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 18 15:15:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 15:15:42 2017 +0000"
      },
      "message": "Merge \"Only honor $inline$ in AOT.\""
    },
    {
      "commit": "b02ba93fb8089ae70229c4e3e90478cb4a9e4668",
      "tree": "dee702cd8570b7993a13d34789ed5b819913ccc8",
      "parents": [
        "24ff0235ab631baccd49fb491197d86d1ef97279"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 13 15:53:54 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 18 13:28:00 2017 +0100"
      },
      "message": "Don\u0027t encode OatQuickMethodHeader for non-compiled methods.\n\nRequires changes to the quickening info format stored in vdex.\n\nLarge app:\n\nBefore\nodex size: 5.5MB\nvdex size: 48MB (49308168 bytes)\n\nAfter:\nodex size: 1.2MB -78%\nvdex size: 48MB (49701846 bytes) +1%\n\nbug: 62120170\nTest: test.py\nChange-Id: I5ae0b103dc57bdd17aa772f4e43db954d109fd44\n"
    },
    {
      "commit": "08490b84048a0267694268185441b70cfa090185",
      "tree": "80f96cffd48eb9b43051d4128d4c8654c1a0d8da",
      "parents": [
        "252eda65ae216ff36a4eca2195d1ec3b29612035"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 18 12:58:10 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 18 12:58:59 2017 +0100"
      },
      "message": "Only honor $inline$ in AOT.\n\nThe state of classes is undeterministic when JITting.\n\nTest: test.py\nChange-Id: I05325efe325bb4f7759d7af7cd65d362e6945c57\n"
    },
    {
      "commit": "24ff0235ab631baccd49fb491197d86d1ef97279",
      "tree": "d999768a0cf955044a4a771fa802b30034dee234",
      "parents": [
        "252eda65ae216ff36a4eca2195d1ec3b29612035",
        "c043d006845afef99b17aeab8bb6d6da1a42ad37"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 18 09:54:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 09:54:47 2017 +0000"
      },
      "message": "Merge \"Remove the old ARM assemblers from ART.\""
    },
    {
      "commit": "1c158a07ac7bac301af9d2921207d66730d1ac0a",
      "tree": "db42f2bef50c3a2393e4f8e09b64a43af75bd15c",
      "parents": [
        "351c44765279142d15333e2ae02b8a423d195b1b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 13 17:26:19 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 18 00:08:53 2017 -0700"
      },
      "message": "ART: Use VisitObjects visitor functions\n\nMove users to VisitObjects with templated visitors. Clean\nup the code a bit.\n\nTest: m\nChange-Id: Ibbda8e9aa17e895cee559080c1e4158744cbbbf6\n"
    },
    {
      "commit": "0d32f4eb356b7823ee39a09e62dfcb496a6cc049",
      "tree": "28f669c9e993ca22477690f415a9a553e27a68a2",
      "parents": [
        "1847704d0422dcc75ac30ae0d3caaf210c05a755",
        "93764b8ee58d54118904b8f4473628451e568893"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 18 03:23:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 03:23:31 2017 +0000"
      },
      "message": "Merge \"Generalize atomic_method_ref_map to support dex references\""
    },
    {
      "commit": "1847704d0422dcc75ac30ae0d3caaf210c05a755",
      "tree": "dda6e4020b74e36ca17fee01e89994dd7235fde1",
      "parents": [
        "269a39982997365ac4e8d2ee3d919e84f3e568d7",
        "0733dc87518d2c8fc1ba2196c9f5cc9729de7c20"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 18 01:38:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 01:38:12 2017 +0000"
      },
      "message": "Merge \"Avoid creating verification_results_ unnecessarily\""
    },
    {
      "commit": "93764b8ee58d54118904b8f4473628451e568893",
      "tree": "729758b4420920b7bb7070dbdac1ecd86810b2a8",
      "parents": [
        "d317295ed07384c69d5890d6b17b80d57139a082"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 14:51:53 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 18:01:17 2017 -0700"
      },
      "message": "Generalize atomic_method_ref_map to support dex references\n\nGeneralize atomic method ref map to support dex references instead\nof only method references.\n\nThe goal is to use this in a future CL to replace compiled_classes_.\n\nTest: test-art-host\n\nChange-Id: Ic6d1e619584f790eea68f5160fa0fcd664524cd7\n"
    },
    {
      "commit": "d317295ed07384c69d5890d6b17b80d57139a082",
      "tree": "7ef48ea60165f89c852bf957207c65c155d49026",
      "parents": [
        "71a8e5b25f0be5ab5bf0e1c73a9e5aabc3a23488",
        "0cb172874481f736c6b7c491dd621166cc25561b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 18 00:12:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 00:12:13 2017 +0000"
      },
      "message": "Merge \"Do superclass validation at compile time and log with new class status.\""
    },
    {
      "commit": "0733dc87518d2c8fc1ba2196c9f5cc9729de7c20",
      "tree": "5dfbd7beba81527b31634fa6920b8f0c1f996007",
      "parents": [
        "71a8e5b25f0be5ab5bf0e1c73a9e5aabc3a23488"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 14:05:28 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 16:54:33 2017 -0700"
      },
      "message": "Avoid creating verification_results_ unnecessarily\n\nFor compiler filters that don\u0027t quicken or compile, avoid creating\nthe verification results. This avoids creating some arrays that\nwere using a few MB of RAM in some cases.\n\nFor a large app verify compile:\nMaximum resident set size (kbytes): 258948 -\u003e 254300\n\nBug: 63467744\nTest: test-art-host\n\nChange-Id: I1d0536b2a6a5c301396641371915394cf4c0e5f3\n"
    },
    {
      "commit": "0cb172874481f736c6b7c491dd621166cc25561b",
      "tree": "2408750b6e08c686b89cee5df0ddae736a775092",
      "parents": [
        "890045e5a768257d8def42827a09a516ebe3e07e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 12 14:51:49 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 17 14:09:56 2017 -0700"
      },
      "message": "Do superclass validation at compile time and log with new class status.\n\nTries to perform superclass validation for classes that are resolved,\nbut not initialized at runtime. If successful, saves the result in the\noat file with a new class status. At runtime, the superclass validation\ncan be skipped during class initialization, saving some time and\nreducing string accesses.\n\nResults show savings of 50kB PSS in maps on startup, with slight\ndecrease in startup time.\n\nMaps (average of 100 runs)\nBefore: dex 9941.3 odex 15159.8 total 25101.1 launch 908\nAfter: dex 9897.4 odex 15155.7 total 25053.1 launch 906.6\n\nBug: 63456114\nTest: mm test-art-host\nChange-Id: If67a4a49d61781b6d561c26118d7e0c6b9cc0d6f\n"
    },
    {
      "commit": "a638954a75f28017ea8987a147f571c551c2f9e0",
      "tree": "769771eece61bb104555e89f3bfeef417b4ec8be",
      "parents": [
        "e77d1240a296b04d950a9b7f9d67c1eea5e7f7c5",
        "3957bfff3af63a889c71d680b4c215a3bc08f5cd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 20:37:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 17 20:37:32 2017 +0000"
      },
      "message": "Merge \"Reduce OatWriter RAM usage for non compilation filters\""
    },
    {
      "commit": "e77d1240a296b04d950a9b7f9d67c1eea5e7f7c5",
      "tree": "a78c1f182e7e0b8d088144507face4de6b087028",
      "parents": [
        "32df620576743b119a266cbc6afe7efecc80e97f",
        "2848a5f8df6a82ff436c67f6b92c8f0d49ae6788"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 17 20:05:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 17 20:05:18 2017 +0000"
      },
      "message": "Merge \"Avoid creating verified methods for non quickening filters\""
    },
    {
      "commit": "32df620576743b119a266cbc6afe7efecc80e97f",
      "tree": "d7f849a727e1188758cee1a72c566894b15fe4ff",
      "parents": [
        "5fde01a13f5000d16fc8f5b96aa0d2f3623d1961",
        "88b74b6a4dbbe0b5b75ef1738833e5b064e85d4c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 17 20:01:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 17 20:01:29 2017 +0000"
      },
      "message": "Merge \"Avoid creating compiled_methods_ array unnecessarily\""
    },
    {
      "commit": "3957bfff3af63a889c71d680b4c215a3bc08f5cd",
      "tree": "67b942ecec418da56495f69165fa60674489f8f9",
      "parents": [
        "5fde01a13f5000d16fc8f5b96aa0d2f3623d1961"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jul 16 13:55:27 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 11:44:40 2017 -0700"
      },
      "message": "Reduce OatWriter RAM usage for non compilation filters\n\nAvoid allocating full oat classes if compilation is not enabled.\n\nThis is accomplished by splitting OatClass into a new OatClassHeader\nclass that only has status, type, and offset members. This saves\nRAM since it is much smaller than the full OatWriter::OatClass.\n\nMaximum resident set size from /usr/bin/time -v on host dex2oat\nwith compiler filter verify -j4: 287248k-\u003e276716k\n\nBug: 63467744\nTest: test-art-host\n\nChange-Id: I6812c259cb8c8c56e122636438a76fdcc1b9a41d\n"
    },
    {
      "commit": "2848a5f8df6a82ff436c67f6b92c8f0d49ae6788",
      "tree": "af3b0a19e61831bdda8be04b4859a19ca9117d76",
      "parents": [
        "65d793bfa91085db5f84b6ee90a3dcdafcafed1b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 15 15:18:00 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 10:34:33 2017 -0700"
      },
      "message": "Avoid creating verified methods for non quickening filters\n\nFilters that don\u0027t do either quickening or compiling don\u0027t need\nverified methods. Avoiding allocating these saves a non-trivial\namount of RAM during compilation.\n\nBefore (PSS compiling a very large app):\nPeak PSS: 215014K, native RAM 59378392B\n\nAfter:\nPeak PSS: 207815K, native RAM 52917928B\n\nBug: 63467744\nTest: Compile an app with compiler-filter\u003dverify\nTest: test-art-host\n\nChange-Id: I493a1c4a8a152b835d5e950192974c4da5b96ae3\n"
    },
    {
      "commit": "c043d006845afef99b17aeab8bb6d6da1a42ad37",
      "tree": "756ce3caca2a7ff62a169c003639657bd7124d2f",
      "parents": [
        "9983e302384c12a975c8d2d5ae239f79fd8e1996"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 14 16:39:16 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 17 18:00:40 2017 +0100"
      },
      "message": "Remove the old ARM assemblers from ART.\n\nNow that the old ARM code generator for ART\u0027s Optimizing\ncompiler is gone, these assemblers no longer have users;\nretiring them.\n\nTest: test.py\nBug: 63316036\nChange-Id: Iaea42432a9e0d3288b71615f85c58846c0336944\n"
    },
    {
      "commit": "88b74b6a4dbbe0b5b75ef1738833e5b064e85d4c",
      "tree": "478b20d75a1671be187e867fde1317aeb8b19515",
      "parents": [
        "65d793bfa91085db5f84b6ee90a3dcdafcafed1b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jul 16 17:08:19 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 17 10:00:25 2017 -0700"
      },
      "message": "Avoid creating compiled_methods_ array unnecessarily\n\nFor compiler filters that don\u0027t quicken or compile, avoid creating\nthe compiled method arrays to save RAM.\n\nFor a dex2oat of a large app with verify filter -j4 on the host:\nReduce native alloc from 39MB to 35MB\nMaximum resident set size (kbytes): 287592k -\u003e 282696k\n\nBug: 63467744\nTest: test-art-host\nChange-Id: Ib84fd9337dc7f5f1e32017bf2c392d1d3328fba8\n"
    },
    {
      "commit": "23cdebe60049850200b30869c6970193f5e7ecea",
      "tree": "bf6eab054e2595f3dbf269a0cc4f4190799f0528",
      "parents": [
        "d4472455580db696d0f211f8e6f7d99d78b3fa79",
        "854df416f12c48b52239fe163ab8a7fcac4cddd3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 17 13:13:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 17 13:13:41 2017 +0000"
      },
      "message": "Merge \"MIPS: TLAB allocation entrypoints\""
    },
    {
      "commit": "65d793bfa91085db5f84b6ee90a3dcdafcafed1b",
      "tree": "c94b0a8ea3a08a8c29feb4fcccbc0793e85f8ad5",
      "parents": [
        "731af335f4e15e82b8972d63b6424d5228f06eec",
        "9983e302384c12a975c8d2d5ae239f79fd8e1996"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sat Jul 15 08:58:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 15 08:58:21 2017 +0000"
      },
      "message": "Merge \"Remove the old ARM code generator from ART\u0027s Optimizing compiler.\""
    },
    {
      "commit": "9983e302384c12a975c8d2d5ae239f79fd8e1996",
      "tree": "4e4d269fe1a3d4f0f1b93cd972adab9f17aab8e0",
      "parents": [
        "bac2bd1c2fbdd94f4d4dfe83d8451f655e875e36"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 14 14:34:22 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 14 17:25:39 2017 +0100"
      },
      "message": "Remove the old ARM code generator from ART\u0027s Optimizing compiler.\n\nThe AArch32 VIXL-based code generator has been the default\nARM code generator in ART for some time now. The old ARM\ncode generator does not compile anymore; retiring it.\n\nTest: test.py\nBug: 63316036\nChange-Id: Iab8fbc4ac73eac2c1a809cd7b22fec6b619755db\n"
    },
    {
      "commit": "2d0fe4ca6906b4215646f1db99b06f927791f2c6",
      "tree": "617e2c5fbb508d5500b6a2f06144c0e412386263",
      "parents": [
        "5e7eb2faccf8f4a28e9fcda26053a5b388f2190a",
        "b79f4ac55c0bb177f541937d0678f2aa777e1c9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 14 15:57:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 14 15:57:26 2017 +0000"
      },
      "message": "Merge \"Added GVN related attributes to vector nodes.\""
    },
    {
      "commit": "bac2bd1c2fbdd94f4d4dfe83d8451f655e875e36",
      "tree": "58ba3b1d28348da478a44234820ab6c485f5ed37",
      "parents": [
        "06410c093de2b8a21bdbd7dfd9ce324fd4e95c3f",
        "6d729a789d3d7771e13d9445ee0be1d9d48a81b5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 14 10:28:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 14 10:28:42 2017 +0000"
      },
      "message": "Merge \"Introduce a Marking Register in ARM code generation.\""
    },
    {
      "commit": "b79f4ac55c0bb177f541937d0678f2aa777e1c9a",
      "tree": "7c331aa30d3c38b4448070527ac02fdbd848f284",
      "parents": [
        "51e74b47f240187d336d9e688f5d7538366f2edf"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 10 10:10:37 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 13 16:50:03 2017 -0700"
      },
      "message": "Added GVN related attributes to vector nodes.\n\nRationale: enables better GVNing of vector operations,\nalso pays off some technical debt by adding unit tests\nfor vector nodes.\n\nThis is a revert^2 of a79f0b5deb932aa44e227c94c4ad09082b3ab4c7\n(failed some of the existing checker test due to\nmoving scalar replication; fix was setting can-be-moved\nattribute correctly on that node).\n\nBug: 63538372\n\nTest: test-art-host, test-art-target\n\nChange-Id: I2f29c317354b5e4bf520829232aef17931305ea6\n"
    },
    {
      "commit": "6d729a789d3d7771e13d9445ee0be1d9d48a81b5",
      "tree": "360b9af68920f411be5fe6753aaf7ab4976385ea",
      "parents": [
        "8cfbbb826a3ab7bb680cfcd8a8148570b165d620"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 30 18:34:01 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 13 16:41:07 2017 +0100"
      },
      "message": "Introduce a Marking Register in ARM code generation.\n\nWhen generating code for ARM, maintain the status of\nThread::Current()-\u003eGetIsGcMarking() in register R8,\ndubbed MR (Marking Register), and check the value of that\nregister (instead of loading and checking a read barrier\nmarking entrypoint) in read barriers.\n\nTest: m test-art-target\nTest: m test-art-target with tree built with ART_USE_READ_BARRIER\u003dfalse\nTest: m test-art-host-gtest\nTest: ARM device boot test\nBug: 37707231\nChange-Id: I30b44254460d0bbb9f1b2adc65eca52ca3de3f53\n"
    },
    {
      "commit": "51765b098301fff1897361b2d1a21af356d9d6d8",
      "tree": "5d35468c9ecd428803fe7e4339fb8e251b6ed926",
      "parents": [
        "e63a91111d13f33028c2988ded53a4659140ca2e"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jun 22 13:49:59 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jul 13 10:34:27 2017 +0200"
      },
      "message": "MIPS32: ART Vectorizer\n\nMIPS32 implementation which uses MSA extension.\n\nNote: Testing is done with checker parts of tests 640, 645, 646 and\n      651, locally changed to cover MIPS32 cases. These changes can\u0027t\n      be included in this patch since MSA is not a default option.\n\nTest: ./testrunner.py --target --optimizing -j1 in QEMU (mips32r6)\nChange-Id: Ieba28f94c48c943d5444017bede9a5d409149762\n"
    },
    {
      "commit": "854df416f12c48b52239fe163ab8a7fcac4cddd3",
      "tree": "f5cf247f1e71a5242c797b8fab99ded21839267d",
      "parents": [
        "e63a91111d13f33028c2988ded53a4659140ca2e"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Jun 27 14:41:39 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Jul 13 10:17:07 2017 +0200"
      },
      "message": "MIPS: TLAB allocation entrypoints\n\nAdd fast paths for TLAB allocation entrypoints for MIPS32 and MIPS64.\nAlso improve rosalloc entrypoints.\n\nNote: All tests are executed on CI20 (MIPS32R2) and in QEMU (MIPS32R6\n      and MIPS64R6), with and without ART_TEST_DEBUG_GC\u003dtrue.\n\nTest: ./testrunner.py --optimizing --target\nTest: mma test-art-target-gtest\nTest: mma test-art-host-gtest\n\nChange-Id: I92195d2d318b26a19afc5ac46a1844b13b2d5191\n"
    },
    {
      "commit": "de4b08ff24c330d5b36b5c4dc8664ed4848eeca6",
      "tree": "79835478b8b631bbf006b5e023704f3cf53bda7c",
      "parents": [
        "c9267c48979698a9217760c914aba13ea20b5990"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 10 14:13:41 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 12 17:54:49 2017 -0700"
      },
      "message": "Reduce quicken info size\n\nMove the quicken info from using a map of \u003cdex pc, index\u003e to an array\nof indices. Removed leb encoding since it is harmful for 16 bit\nindices. The map is indexed by the dequickenable instruction index\nfrom the start of the code item.\n\nNumbers for a certain large app compiled with quicken filter:\ndex2oat native alloc: 85345936B -\u003e 81527072B\noat file size: 9068968B -\u003e 8659368B\nvdex file size: 90479120B -\u003e 86321184B\n\nBug: 63467744\nBug: 36457259\nTest: test-art-host\n\n(cherry picked from commit 959f348acabc48efbb18c547dad6300c0f610c1c)\n\nChange-Id: I85546d8cd409cbf96140cbdddabd7e228797b9e3\n"
    },
    {
      "commit": "5dcf650c18c2314f861e62e6cc0309fe75056379",
      "tree": "a7e860a3c947cffedfd5feff6a49c8885099a1bc",
      "parents": [
        "8d174b5863ac4eec9d2315a5af3bdbfb4e4332e3",
        "b2e8adc075265ff4f1024dd081aaa74654ddf9f0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 12 17:43:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 12 17:43:53 2017 +0000"
      },
      "message": "Merge \"Include more cases in ImageWriter\""
    },
    {
      "commit": "af24def8967027f10ce8d44cb209c23032a2a1b4",
      "tree": "503bc7430d73944dc1faf51082fc36be1735d4c4",
      "parents": [
        "08dd84adab79f98b2f2e7dfbccf8ef6b07cd3f2e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 12 13:18:01 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 12 13:20:53 2017 +0100"
      },
      "message": "Fix ART ARM64 CFI gtests with GCs other than CC with Baker read barriers.\n\nSince the introduction of a Marking Register in the ARM64 back\nend, gtests jni_cfi_test and optimizing_cfi_test produce\ndifferent outputs for the Concurrent Copying (CC) collector\nwith Baker read barriers on the one hand, and for other GCs on\nthe other hand.\n\nTest: m test-art-host-gtest with tree built with ART_USE_READ_BARRIER\u003dfalse\nBug: 37707231\nChange-Id: I63de8873f52df593eb664970f2be20f1089804a9\n"
    },
    {
      "commit": "08dd84adab79f98b2f2e7dfbccf8ef6b07cd3f2e",
      "tree": "f171c11372ad3826d91853a0e125be14e12d029d",
      "parents": [
        "8ea20746896a5930d99b74d54213ff5a742ae937",
        "97c46466aea25ab63a99b3d1afc558f0d9f55abb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 12 10:38:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 12 10:38:10 2017 +0000"
      },
      "message": "Merge \"Introduce a Marking Register in ARM64 code generation.\""
    },
    {
      "commit": "b2e8adc075265ff4f1024dd081aaa74654ddf9f0",
      "tree": "d478bd7180d8c8ff1379d4636869f516ed4655aa",
      "parents": [
        "720e0db030504d9490e0c0eb671d04267921fd42"
      ],
      "author": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Fri Jul 07 17:35:37 2017 -0700"
      },
      "committer": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Tue Jul 11 17:47:19 2017 -0700"
      },
      "message": "Include more cases in ImageWriter\n\nAdd a reference visitor for object in image writer to prune not only classes\nbut also instances referenced. Otherwise an object storing a ref to a pruned\nclass will not pruned.\n\nPrune a class anyway if it contains any field that is an instance of Method\nand Constructor class because reflection is forbidden.\n\nTests may not cover the new logic, but they will be tested when clinit is\nsupported for app image later.\n\nTest: make test-art-host-j64\nChange-Id: I8318cdb553eff8e56a30493124f859419f20e23f\n"
    },
    {
      "commit": "5fd8e8146b45e591fedc8c83781e9c62b5e6fef4",
      "tree": "a79259b26160e5e85eeb4023106cf205eb2b19e5",
      "parents": [
        "733e441e3bcaa6efb8248fe3429b18d3199ee30e",
        "1ce7085831316272f071a01d14eea8048264a7bf"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jul 11 17:35:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 11 17:35:32 2017 +0000"
      },
      "message": "Merge \"Add support for class loader context in dex2oat\""
    },
    {
      "commit": "97c46466aea25ab63a99b3d1afc558f0d9f55abb",
      "tree": "afd225f51d28a77329bc2590a025400e088f260c",
      "parents": [
        "00cca3a275562d110a8b35094b9b12fac37f67ab"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 11 14:04:03 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 11 17:43:27 2017 +0100"
      },
      "message": "Introduce a Marking Register in ARM64 code generation.\n\nWhen generating code for ARM64, maintain the status of\nThread::Current()-\u003eGetIsGcMarking() in register X20,\ndubbed MR (Marking Register), and check the value of that\nregister (instead of loading and checking a read barrier\nmarking entrypoint) in read barriers.\n\nTest: m test-art-target\nTest: m test-art-target with tree built with ART_USE_READ_BARRIER\u003dfalse\nTest: ARM64 device boot test\nBug: 37707231\nChange-Id: Ibe9bc5c99a2176b0a0476e9e9ad7fcc9f745017b\n"
    },
    {
      "commit": "1ce7085831316272f071a01d14eea8048264a7bf",
      "tree": "35e527413824324e82398fdc6bd89c883366bdb6",
      "parents": [
        "87e2cb64ab02d9bdc48255130c67168c809c5f62"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 28 10:59:03 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jul 10 17:08:08 2017 -0700"
      },
      "message": "Add support for class loader context in dex2oat\n\nThe context can be passed to dex2oat using \u0027--class-loader-\ncontext\u003d\u003cstring spec\u003e\u0027. It accepts a string specifying the intended\nruntime loading context for the compiled dex files.\n\ne.g. --class-loader-context\u003dPCL[lib1.dex:lib2.dex];DLC[lib3.dex].\n\nIt describes how the class loader chain should be build in order to\nensure classes are resolved during dex2aot as they would be resolved at\nruntime. This spec will be encoded in the oat file. If at runtime the\ndex file will be loaded in a different context, the oat file will be\nrejected.\n\nThe chain is interpreted in the natural \u0027parent order\u0027, meaning that\nclass loader \u0027i+1\u0027 will be the parent of class loader \u0027i\u0027. The\ncompilation sources will be added to the classpath of the last class\nloader. This allows the compiled dex files to be loaded at runtime in a\nclass loader that contains other dex files as well (e.g. shared\nlibraries).\n\nNote that the compiler will be tolerant if the source dex files\nspecified with --dex-file are found in the classpath. The source dex\nfiles will be removed from the any class loader\u0027s classpath possibly\nresulting in empty class loaders.\n\nTest: m test-art-host\nBug: 38138251\nChange-Id: I3446ac7b2949d367dbc6d15729d3b203791eaac0\n"
    },
    {
      "commit": "65f1c2edd02f3936aef94c7313932069e66a1167",
      "tree": "d584cd9362d216b4f4dc310a28c3210a83cd375e",
      "parents": [
        "2b30e06c3caa33ad77cd30648e1e111c44799305",
        "ca8c2951ea25e8f93eea9decc70d81937b4361dd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 10 19:08:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 10 19:08:54 2017 +0000"
      },
      "message": "Merge \"MIPS32: Saves 128-bit vector registers along SuspendCheckSlowPath\""
    },
    {
      "commit": "e61682fc562a8ada3d0be8c375b05365ffbc2aa7",
      "tree": "f350f31de30c698b1e1ee66749c5e1fd430a5116",
      "parents": [
        "d3784e9d4d29707c9909f2501a816d8d0a27fa99",
        "9858bf70c9af425f5f712caca7b51b49c806b271"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jul 08 12:35:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 08 12:35:23 2017 +0000"
      },
      "message": "Merge \"Revert \"Added GVN related attributes to vector nodes.\"\""
    },
    {
      "commit": "9858bf70c9af425f5f712caca7b51b49c806b271",
      "tree": "e70e88c83c8260fbea01b258d3d221cc31d38d8d",
      "parents": [
        "a79f0b5deb932aa44e227c94c4ad09082b3ab4c7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jul 08 12:34:55 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jul 08 12:34:55 2017 +0000"
      },
      "message": "Revert \"Added GVN related attributes to vector nodes.\"\n\nFails armv8 checker tests.\n\nThis reverts commit a79f0b5deb932aa44e227c94c4ad09082b3ab4c7.\n\nChange-Id: I8913743f241febbbb24c0662af76397e87e59cd1\n"
    },
    {
      "commit": "5da5dca64d2c0db9f793b82ceeb1dd21a3c839f9",
      "tree": "dfc716616ea4b98095c41d7000ced8ca58fb985c",
      "parents": [
        "a3920a0435fa63a0ee98ccd3c87d7af960086eaa",
        "2e0a7e5047fde08ddd220aaa1a0e64d44ecbb420"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 07 18:07:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 07 18:07:23 2017 +0000"
      },
      "message": "Merge \"MIPS32: Adds changes neccessary for saving 128 bits of data\""
    },
    {
      "commit": "334a1c591ad8931d944d460107936b21e4d2331b",
      "tree": "b39dc5742880ca057b8b78d8a1bc3e79b151c60a",
      "parents": [
        "8be42d0d30f32e5237087673b46010625988553a",
        "a79f0b5deb932aa44e227c94c4ad09082b3ab4c7"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jul 07 15:50:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 07 15:50:14 2017 +0000"
      },
      "message": "Merge \"Added GVN related attributes to vector nodes.\""
    },
    {
      "commit": "a79f0b5deb932aa44e227c94c4ad09082b3ab4c7",
      "tree": "2d16c2876f6ccbc8ca1b9f6bf7fe43523a4132e3",
      "parents": [
        "4c4d9df7c79747978d2f927994a7b3c11a079075"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 05 17:19:41 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 06 11:58:20 2017 -0700"
      },
      "message": "Added GVN related attributes to vector nodes.\n\nRationale: enables better GVNing of vector operations,\nalso pays off some technical debt by adding unit tests\nfor vector nodes.\n\nTest: test-art-host, test-art-target\n\nChange-Id: I2aa886b894bb6a0961823ae309cf8cf44984cf4a\n"
    },
    {
      "commit": "0656044bf8b1d5053cdea6615f4d0aebad5b64b8",
      "tree": "3842f5694a0a98b275b8ec38cf7962979d5f45ee",
      "parents": [
        "8054c1d7da8ced97e5371d5a18dcf5ddd388835d",
        "ba17dbd5f23d6f6acf3fb60b6dd65dc34bd833de"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 06 18:42:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 18:42:00 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Fixed Literal String intern mismatch.\"\"\""
    },
    {
      "commit": "8054c1d7da8ced97e5371d5a18dcf5ddd388835d",
      "tree": "1179fdf1b6057ca38a0f847f13fb1ddc6744c714",
      "parents": [
        "170de15c5fc91ca8e9bc854f6adbee84d9b15b0b",
        "70f689dce49f2d1466dc98df9aee5a880956b45c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 06 18:40:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 18:40:48 2017 +0000"
      },
      "message": "Merge \"Add an init encoded fields threshold to compiler\""
    },
    {
      "commit": "170de15c5fc91ca8e9bc854f6adbee84d9b15b0b",
      "tree": "eb4d970ecfcfdbd343002b7d7303f97ffd1238d4",
      "parents": [
        "e32097c4d7f068673b531384340bb55f4b2ac011",
        "1b49910396629427d8d11aefb574817aec0231fb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 06 18:30:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 18:30:04 2017 +0000"
      },
      "message": "Merge \"Move libartd-simulator dependency to host-only\""
    },
    {
      "commit": "70f689dce49f2d1466dc98df9aee5a880956b45c",
      "tree": "b5cdfaa381821f8c37eb77a50623cc79fedc400e",
      "parents": [
        "71bde0dff0159976fdad4b6a45e903a96bd51aca"
      ],
      "author": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Thu Jun 08 17:16:12 2017 -0700"
      },
      "committer": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Thu Jul 06 09:32:40 2017 -0700"
      },
      "message": "Add an init encoded fields threshold to compiler\n\nAdd a check for the number of encoded fields when initializing app\nimages and fail the initialization if too much encoded fields are\npresented. This helps against the adversary applications and reduce\ncompiling time on test case 056.\n\nBug: 62337922\nTest: art-host-test -j64\nChange-Id: I9f24fbe5ada473ec415459a36b0c22d2f504af62\n"
    },
    {
      "commit": "ca8c2951ea25e8f93eea9decc70d81937b4361dd",
      "tree": "72c811abe58895b4972cd88ee267c8ca66155fd1",
      "parents": [
        "2e0a7e5047fde08ddd220aaa1a0e64d44ecbb420"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Mon May 29 11:31:46 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jul 06 14:06:33 2017 +0200"
      },
      "message": "MIPS32: Saves 128-bit vector registers along SuspendCheckSlowPath\n\nWe need to save 128 bits of data. This is only done for vector\nregisters that are live, so overhead is not too big.\n\nTest: mma test-art-host-gtest\nTest: ./testrunner.py --optimizing --target in QEMU (MIPS)\nChange-Id: I0f792e9c98011be3e24d5fad35a8244faafcb9a0\n"
    },
    {
      "commit": "2e0a7e5047fde08ddd220aaa1a0e64d44ecbb420",
      "tree": "7c541176dc1b44cc927272f9b38fab4ce7ac9e85",
      "parents": [
        "209b4c7141d7da61790844cd58bd0a9bab2951d8"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jul 06 11:55:24 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jul 06 14:04:01 2017 +0200"
      },
      "message": "MIPS32: Adds changes neccessary for saving 128 bits of data\n\nTest: mma test-art-host-gtest\nTest: ./testrunner.py --optimizing --target in QEMU (MIPS)\n\nChange-Id: I90b7baa1d5f910887bcc3ab80a1a48391ba80c45\n"
    },
    {
      "commit": "209b4c7141d7da61790844cd58bd0a9bab2951d8",
      "tree": "20819fa38ead6455301558143ed41f908bd581fd",
      "parents": [
        "c2127b907a94e4128d3a812d75a6654ebfc098dc",
        "f79aa7fc107c661e5a6d6ffd2a33221864fa1fa3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 06 08:47:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 08:47:59 2017 +0000"
      },
      "message": "Merge \"Small refactoring of field/method access checks.\""
    },
    {
      "commit": "71bde0dff0159976fdad4b6a45e903a96bd51aca",
      "tree": "b47f72efc2e56af1fb2839495692076521437e0c",
      "parents": [
        "b2bedf41a6ce1204d01a4adf804bc418594af0ee",
        "23e81a182fb71693b731ac24b6fc3969b7471473"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 06 01:01:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 06 01:01:36 2017 +0000"
      },
      "message": "Merge \"Improve ImageWriter logging.\""
    },
    {
      "commit": "23e81a182fb71693b731ac24b6fc3969b7471473",
      "tree": "f916042ca693263e99b8f28c33b1061c5a8d4580",
      "parents": [
        "4c4d9df7c79747978d2f927994a7b3c11a079075"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 05 09:36:27 2017 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 05 15:05:35 2017 -0700"
      },
      "message": "Improve ImageWriter logging.\n\nIn the case of a locked object log the type of object and the thread\nthat locked it.\n\nTest: test.py --host\n\nChange-Id: Ibaf79cead765df6c212213017248d0f70d9cfbd7\n"
    },
    {
      "commit": "5da37807bb1ab3f7f4cc8f111ad4819d766fc0ff",
      "tree": "0b6d0fc74b5b0f0029100584476e3a96e3bb6863",
      "parents": [
        "4c4d9df7c79747978d2f927994a7b3c11a079075",
        "3b15545581b32edbb3fa66967a01cd4d3b0bb5c2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 05 17:21:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 05 17:21:39 2017 +0000"
      },
      "message": "Merge \"Prune methods in image DexCache based on referencing class.\""
    },
    {
      "commit": "f79aa7fc107c661e5a6d6ffd2a33221864fa1fa3",
      "tree": "07bf40e8b5d75454ffe52e82f4d4e5300386fe37",
      "parents": [
        "4a77b1e96733be419c0cb571448e8590c803bd91"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 04 16:58:55 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 05 16:32:24 2017 +0100"
      },
      "message": "Small refactoring of field/method access checks.\n\nAnd some cleanup to reduce the size of the upcoming\nmethod resolution rewrite CL.\n\nTest: m test-art-host\nTest: testrunner.py --host\nTest: testrunner.py --host --interp-ac\nBug: 62855082\nChange-Id: I5bbf0a92d75fe9de6982b80280cd5877fcc37700\n"
    },
    {
      "commit": "3b15545581b32edbb3fa66967a01cd4d3b0bb5c2",
      "tree": "58a63b6c19a5084a141309c05b8c5629331abd2b",
      "parents": [
        "4a77b1e96733be419c0cb571448e8590c803bd91"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 05 11:41:33 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 05 16:12:00 2017 +0100"
      },
      "message": "Prune methods in image DexCache based on referencing class.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/353911\nwhere we did the same thing for fields.\n\nTest: 163-app-image-methods\nTest: testrunner.py --host\nTest: testrunner.py --host --jit\nBug: 30627598\nChange-Id: Ic24546f7e4a42f0f85e224a65ce1c8f7f1439340\n"
    },
    {
      "commit": "640fbdc7516a40883f219bd3c9f0e7b8a49842b4",
      "tree": "09b4ed23b6904c78ce6b1229b0b70f9a8830717f",
      "parents": [
        "4a77b1e96733be419c0cb571448e8590c803bd91",
        "2a3471fc83383bfe3e060799482e372420ba6150"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 05 10:28:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 05 10:28:20 2017 +0000"
      },
      "message": "Merge \"Disambiguate memory accesses in instruction scheduling\""
    },
    {
      "commit": "4913cf39dc3a15211e3a13bdc685541babc93d6d",
      "tree": "1891acc19e3f8fc6f9e12771bb0e21a696552317",
      "parents": [
        "4dd8880401bc7cd7bc748e5f828771611aa7bdc1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 04 13:51:09 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 04 13:54:37 2017 +0100"
      },
      "message": "Remove obsolete helpers from CompilerDriver.\n\nTest: Rely on TreeHugger.\nChange-Id: Id177ed422353a8606c3e57d34e1519e6b17e5c48\n"
    },
    {
      "commit": "631827d9b200c93f24816c6869d72426f9fed8e3",
      "tree": "9d5d768df39e21a2678d4b9148c5ec4d1c016911",
      "parents": [
        "d64fbfa3471c47d6628d6014bc4a3ac780abd26a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Apr 10 14:53:47 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 04 11:57:13 2017 +0100"
      },
      "message": "Fixes for constant method handles\n\nAdd support for constant direct and interface method handles in the\nDEX file.\n\nAdd error handling for field and method resolution failures in\nClassLinker::ResolveMethodHandle().\n\nBug: 36957105\nTest: art/test/run-test --host 952-invoke-custom-kinds\nChange-Id: I91a2a23ba3365310eccb8cadd193b62f57e5811c\n"
    },
    {
      "commit": "8091ed8a26db4609c719ea8d905145ddfed7f498",
      "tree": "342d4459e8e9c61af7b69fc2ac2e0512592cf9f4",
      "parents": [
        "61cfb15e2588ff1fe3c80efbfcf55973122b28cb",
        "5fa5c04ca39fb9c46bfef0e0807a18d0cd9a4ba7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 03 11:48:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 03 11:48:56 2017 +0000"
      },
      "message": "Merge \"MIPS: Shorten .bss string/class loads\""
    },
    {
      "commit": "7df2bb6411a097e427b067fbbc3a17e2837cbb00",
      "tree": "2075547c85228ea923f199072afb986549ae59ca",
      "parents": [
        "a073f1f50a7bcc981c8d3d4bb7c3a267644af1e2",
        "e602b1cde4e422b9ff508b8b3dbfb31cadd826b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 01 01:21:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 01 01:21:44 2017 +0000"
      },
      "message": "Merge \"Fix boot classes init when compiling app image\""
    },
    {
      "commit": "e602b1cde4e422b9ff508b8b3dbfb31cadd826b7",
      "tree": "bc90c2b7c8b0be9bd17c3052e11aa04d81549ec0",
      "parents": [
        "222a480d96d3777564735258679f3fb508effce1"
      ],
      "author": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Fri Jun 30 11:55:01 2017 -0700"
      },
      "committer": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Fri Jun 30 11:55:01 2017 -0700"
      },
      "message": "Fix boot classes init when compiling app image\n\nClasses resident in boot library should not be initialized and stored in\napp image anyway while compiling app image.\n\nFixed by checking the location of classes in compiler driver when\ninitializing classes and is compiling app image.\n\nThe InitializeDependencies is advanced which makes TryInitialize become\nthe only entrypoint for app image, and since boot image doesn\u0027t need\nthis function, the behavior for compiling boot image should stay the\nsame.\n\nBug: 62715577\nTest: not covered now, will be fixed and test by another CL.\nChange-Id: I8e683e6b14f1402dba8ef5c4b0f5fa936a343d8c\n"
    },
    {
      "commit": "e128af51eb0d1a882b9bc37cd213639d0c3a63e7",
      "tree": "cce9394c1892680e9d731df24475fca35decaf59",
      "parents": [
        "dfcf10b92330164f8af6c82c8232e85cfff1ae3c",
        "8f7c41044bdb7a36913444a3437bf2b946f7efe9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 30 18:18:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 30 18:18:06 2017 +0000"
      },
      "message": "Merge \"ARM: ART Vectorizer (64-bit vectors).\""
    },
    {
      "commit": "dd3240ce699129007935ba0bae4872e28652b90c",
      "tree": "305d061a33740ce48c7f027b474641017e1bab86",
      "parents": [
        "89ae0f42e38a2f985ac404830f2a05fecf9547e2",
        "8098da9cf3e3f7875546c2cd953f2337587b39db"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jun 30 15:50:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 30 15:50:59 2017 +0000"
      },
      "message": "Merge \"MIPS32: MoveLocation refactoring\""
    },
    {
      "commit": "2a3471fc83383bfe3e060799482e372420ba6150",
      "tree": "7b7764521a0b67392e023f1efacc0dbae64fe675",
      "parents": [
        "89ae0f42e38a2f985ac404830f2a05fecf9547e2"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Mon May 08 18:36:40 2017 +0100"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Fri Jun 30 16:32:54 2017 +0100"
      },
      "message": "Disambiguate memory accesses in instruction scheduling\n\nBased on aliasing information from heap location collector,\ninstruction scheduling can further eliminate side-effect\ndependencies between memory accesses to different locations,\nand perform better scheduling on memory loads and stores.\n\nPerformance improvements of this CL, measured on Cortex-A53:\n| benchmarks     | ARM64 backend | ARM backend |\n|----------------+---------------|-------------|\n| algorithm      |         0.1 % |       0.1 % |\n| benchmarksgame |         0.5 % |       1.3 % |\n| caffeinemark   |         0.0 % |       0.0 % |\n| math           |         5.1 % |       5.0 % |\n| stanford       |         1.1 % |       0.6 % |\n| testsimd       |         0.4 % |       0.1 % |\n\nCompilation time impact is negligible, because this\nheap location load store analysis is only performed\non loop basic blocks that get instruction scheduled.\n\nTest: m test-art-host\nTest: m test-art-target\nTest: 706-checker-scheduler\n\nChange-Id: I43d7003c09bfab9d3a1814715df666aea9a7360b\n"
    },
    {
      "commit": "89ae0f42e38a2f985ac404830f2a05fecf9547e2",
      "tree": "94f9768d4639fcda93a46c27637154259c810ea0",
      "parents": [
        "aed3dbf9601bc1bb91142dce10a89cf5ea6a93d3",
        "cf96bedc850e99f7dfeb4fc134603701c146f738"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 30 12:28:37 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 30 12:28:37 2017 +0000"
      },
      "message": "Merge \"Fix unintended change in JIT inlining heuristics.\""
    },
    {
      "commit": "aed3dbf9601bc1bb91142dce10a89cf5ea6a93d3",
      "tree": "03742367b4f8f6a1b6eb44effae478c6d16a6e50",
      "parents": [
        "6cb5ae065a54f08f0c8d09b41c2697b097094ce9",
        "016c0f165dc6872d22c12c239d19b094983519f1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 30 11:44:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 30 11:44:18 2017 +0000"
      },
      "message": "Merge \"Improve array index analysis in LSA.\""
    },
    {
      "commit": "8f7c41044bdb7a36913444a3437bf2b946f7efe9",
      "tree": "cdfcc8dae149617f6270198e15101b329f821ebd",
      "parents": [
        "a4811cd3496eb28295fe61057844c53793f3023e"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Jun 21 11:21:37 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 30 11:52:24 2017 +0100"
      },
      "message": "ARM: ART Vectorizer (64-bit vectors).\n\nBasic vectorization support with 64-bit vector length on ARM 32-bit\nplatforms (128-bit vectors require massive changes in register\nallocator).\n\nTest: test-art-target, test-art-host\n\nChange-Id: I1d740146c3f00170fc033ae5fd69d59321ddcbf4\n"
    },
    {
      "commit": "cf96bedc850e99f7dfeb4fc134603701c146f738",
      "tree": "9cb3decf0dca2a07e49ad9bb270a3c0f30030706",
      "parents": [
        "740c3008171fe69432db8bfe4b9c837ac24b85c0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 30 10:26:24 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 30 10:26:24 2017 +0100"
      },
      "message": "Fix unintended change in JIT inlining heuristics.\n\nHappened after: https://android-review.googlesource.com/#/c/426519/\nSeen on go/lem\n\nTest: test.py\nChange-Id: I6907e4259b98e0b9db0c624fd0bee6adc00fc7ee\n"
    },
    {
      "commit": "740c3008171fe69432db8bfe4b9c837ac24b85c0",
      "tree": "ead2d10a4c0478e2e08d30a9e7de7f8f5fbb4a27",
      "parents": [
        "4aa0cf8d72386bc2bc42f437919a66ec392eca21",
        "757b26c2442ae792039bc50153bef91145f3c7b4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 30 09:12:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 30 09:12:51 2017 +0000"
      },
      "message": "Merge \"Add CHECKs to help diagnose a crash seen internally.\""
    }
  ],
  "next": "4aa0cf8d72386bc2bc42f437919a66ec392eca21"
}
