)]}'
{
  "log": [
    {
      "commit": "43ae7791007d6e7bdc9dbf8cb7c9a3f3aec40efd",
      "tree": "a283f976c1d0a8f5596787313135cb341afd2b97",
      "parents": [
        "a966376ac9ea3bf3b52ae52d47985d4967a99c3d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 09 17:34:01 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 22 14:01:41 2019 +0000"
      },
      "message": "Add timing logger for mini-debug-info generation.\n\nTest: Check ANR report.\nChange-Id: I7e1b67bf8e1b950d5f67937fd29645b570d0465a\n"
    },
    {
      "commit": "96259f1f2f37d222ce321fd223655d1134a8ba01",
      "tree": "e77eba088bd556dc44375e68eaa622a8301617aa",
      "parents": [
        "3c29c66933f81dbb9af17caa197257ac67ee3c78"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 18 10:04:51 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 18 11:31:26 2019 +0000"
      },
      "message": "Pass the Java caller\u0027s location to OpenNativeLibrary.\n\nWill be used to find the linker namespace to use.\n\nBug: 122874359\nTest: m, gtest, run-test, CtsJdwpTests\n\nChange-Id: Ibeebe20844e2bbdc306d65fb4f2ee3237343fa09\n"
    },
    {
      "commit": "8f1c8e56a683ff9d77ec1d1ac7f3d81458047714",
      "tree": "10c19d1403361bf499a576000135aaf2a692dd05",
      "parents": [
        "181b831d1a215504a80b5c7508fc2c6e1acac40c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 08 10:34:16 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 17 17:13:51 2019 +0000"
      },
      "message": "ART: Some more iwyu\n\nBug: 119869270\nTest: mmma art\nChange-Id: Ie67b57c7173986009fdc7b4aa01563846d30f25f\n"
    },
    {
      "commit": "639b2b1f3a675135d443fc380323fbc48639a7eb",
      "tree": "0aba54938e712e5dd95b525c92f836c59cca49c6",
      "parents": [
        "8764dc3b3eda7f6f13ed7b584475503fe5bedd59"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 08 10:32:50 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Remove instruction_set.h from thread.h\n\nMove the function definitions relying on it to the -inl. Some\nfollow-up transitive-include cleanup, as well as some more\nforward-declarations.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I820f395e6cb8343a4bb9bf02da271fbec067109f\n"
    },
    {
      "commit": "ebc3b25e187cb39a12dcb05ae1c44de23aa5696e",
      "tree": "589f80a876f899a14608ee657b10fd4b821f463f",
      "parents": [
        "458a948d4fc954d767103b5a95803a0a60be9f1c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 09 10:47:02 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 09 12:40:22 2019 +0000"
      },
      "message": "Fix compiler bug when typing exceptions.\n\nHandlers of different exception types can start at the same\nbytecode address, so we should update the type in the compiler\nto avoid wrongly typing the exception.\n\nbug: 119944057\nTest: 689-multi-catch\nChange-Id: I66e43890634965ee7790436c8e5a718564c6040f\n"
    },
    {
      "commit": "e36f5f6a2d6688734ed70118602010926f044891",
      "tree": "5de57aebc0fdfa281d44441c0a7d625ac45f5224",
      "parents": [
        "edad2aaa63d3db34960175a2f54b684dab2eb402"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Jan 08 17:01:31 2019 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Jan 08 17:01:31 2019 +0000"
      },
      "message": "ART: Replace \u0027auto\u0027 with actual types\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing --64\nTest: art/test.py --host --optimizing\nChange-Id: Ic5db365ffbdcd81997980c4c0cad271547e7af97\n"
    },
    {
      "commit": "5d938ef154f504ada9c8fc9c9361fe69aabbe8b9",
      "tree": "00b59e57bc4cee74fe0bc976fff02cb1d8ed1be6",
      "parents": [
        "c3c0299f4bf262005ad41eeb0b5e281e5cea5d84",
        "51bc752e21e56522ce1df22e1016800d43b8c534"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 07 13:19:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 07 13:19:50 2019 +0000"
      },
      "message": "Merge \"Fix CFI tests for heap poisoning.\""
    },
    {
      "commit": "51bc752e21e56522ce1df22e1016800d43b8c534",
      "tree": "7a0b05d3cf4cbfc5185d7a42e2b718432629e20d",
      "parents": [
        "30a8c4b28c8199418dd0a844992604274a7bc9cc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jan 05 15:41:06 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 07 13:10:09 2019 +0000"
      },
      "message": "Fix CFI tests for heap poisoning.\n\nThis is partial revert of \"Pack JIT mini-debug-infos together.\"\n\nThe code is correct, but it makes heap poisoning tests fail.\n\nReverting for now, pending further investigation.\n\nBug: 122259922\nBug: 122379755\nTest: ART_HEAP_POISONING\u003dtrue ART_USE_READ_BARRIER\u003dtrue ./art/test.py -b -r -t 137\nChange-Id: Ic15e150e0c205439be7753c125e243f77e380cae\n"
    },
    {
      "commit": "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf",
      "tree": "365d20ad6b68ff1dbd4903764b63880324136e4d",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 28 09:39:56 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:25 2019 -0800"
      },
      "message": "ART: Move dex structs into own header\n\nSeparating out the structs from DexFile allows them to be forward-\ndeclared, which reduces the need to include the dex_file header.\n\nBug: 119869270\nTest: m\nChange-Id: I32dde5a632884bca7435cd584b4a81883de2e7b4\n"
    },
    {
      "commit": "90793b3f3fa3fee04b196555f1656d432993f799",
      "tree": "2371a2ad64d962215d7b99a507fe5ff67624c290",
      "parents": [
        "9f55716cadd84ad509a4fd3bb0a0202038cf11bd",
        "3db70689e3e1c92344d436a8ea4265046bdef449"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 28 18:58:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 28 18:58:01 2018 +0000"
      },
      "message": "Merge \"ART: Refactor for bugprone-argument-comment\""
    },
    {
      "commit": "41dba673345271e53803efb477b86fad5939854c",
      "tree": "afebb61a4466b2003c27cd4f08953b096a6c44d3",
      "parents": [
        "1650dafad62578a1766bd617d78458a4cf1e2a9a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 21 15:06:17 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 27 13:09:23 2018 -0800"
      },
      "message": "Add dumping for number of classes initialized\n\nFor --dump-stats, dump how many classes are each status after\nattempting initialization.\n\nTest: \u003ccompile_apk\u003e --instruction-set\u003darm64 --app-image-file\u003dgenerated.art --dump-stats\n\nSample output:\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 100% of instance fields resolved for 1575 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 1.88679% of check-casts removed based on type information for 53 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status NotReady for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status Retired for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status ErrorResolved for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status ErrorUnresolved for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status Idx for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status Loaded for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status Resolving for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status Resolved for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status Verifying for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0.0186596% of classes with status RetryVerificationAtRuntime for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status VerifyingAtRuntime for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 28.1916% of classes with status Verified for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status SuperclassValidated for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 0% of classes with status Initializing for 32155 cases\ndex2oat I 12-21 19:18:56 58439 58439 compiler_driver.cc:109] 71.7898% of classes with status Initialized for 32155 cases\n\nBug: 70735003\nTest: test-art-host\n\nChange-Id: I57e8a977ee202c0ce85030208caa183344a5567a\n"
    },
    {
      "commit": "3db70689e3e1c92344d436a8ea4265046bdef449",
      "tree": "3db08743e968062ed5bdc143233cdb3c4564696b",
      "parents": [
        "1650dafad62578a1766bd617d78458a4cf1e2a9a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 26 15:12:03 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 27 12:56:39 2018 -0800"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles compiler.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I5cdfe73c31ac39144838a2736146b71de037425e\n"
    },
    {
      "commit": "ca7027d30aa8b1abf4ef76dda156dd893234ddca",
      "tree": "def9167e4686b07da887e0a51afb7558195d26dd",
      "parents": [
        "7201ef48fb42cc36824126a26f758f02c9200bad",
        "776a7c294f6356b314505369679bffc73f4a345e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 21 16:12:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 21 16:12:17 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.updateByteBuffer intrinsic for ARM64\""
    },
    {
      "commit": "adf595900e6f6328c68a15b88f53529cb5e520f3",
      "tree": "59c080ac1b5c0a190ce3da72e619b622b54790f4",
      "parents": [
        "43faa46d2362c451d5a4599cd5c7b7ee13f3d221",
        "c4a924d8c74241057d957d360bf31cd5cd0e4f9c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 20 14:07:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 20 14:07:32 2018 +0000"
      },
      "message": "Merge changes I5e42f85c,I60174623\n\n* changes:\n  Keep dex location from OatDexFile.\n  Remove unresolved classes from image classes.\n"
    },
    {
      "commit": "776a7c294f6356b314505369679bffc73f4a345e",
      "tree": "ec1d678a0923d2c7ec869f806f5b4860e1a1a721",
      "parents": [
        "8ceeb2ede9a7280fab618dfcb55f424a79dc00ca"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Mon Dec 17 11:40:34 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Dec 19 23:01:02 2018 +0000"
      },
      "message": "ART: Add CRC32.updateByteBuffer intrinsic for ARM64\n\nUse crc32 instructions for\njava.util.zip.CRC32.updateByteBuffer(int, long, int, int).\n\nNote that CRC32 is an optional feature in ARMv8, this intrinsic\nis only enabled for devices supporting the CRC32 instructions.\n\nThe performance of the intrinsic is the same as the performance of the\nCRC32.updateBytes intrinsic. However the intrinsic does not have a\nrestriction on the size of the byte buffer. For big input data\nthe intrinsic will be faster than CRC32.updateBytes.\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing\nTest: art/test.py --host --optimizing\nTest: 580-crc32\n\nChange-Id: I6b6160b56e829731402bd5fc56bcac59664f634d\n"
    },
    {
      "commit": "30a8c4b28c8199418dd0a844992604274a7bc9cc",
      "tree": "41c74f53ceb4720805d3e9cde8b9aa4ee88e9649",
      "parents": [
        "2b979929d701ae26b80be6aa42ea4781f141c1d6",
        "0b21e41260bea6c078c18eba745d43e549230fd0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 19 18:45:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 19 18:45:35 2018 +0000"
      },
      "message": "Merge \"Pack JIT mini-debug-infos together.\""
    },
    {
      "commit": "29a533e30277e159327c24e27ed609d26479b2cd",
      "tree": "b75a50e43945db1da197fc5c2d95caaaeb71af0a",
      "parents": [
        "dadba138d745b1fb77da581f2d51fee20ccbac37"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 23 12:42:00 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 19 16:09:50 2018 +0000"
      },
      "message": "Remove unresolved classes from image classes.\n\nThis allows compiling partial boot image, without conscrypt,\nwhile using the current image classes in preloaded-classes.\nExcluding the conscrypt makes the class\n  android.security.net.config.TrustedCertificateStoreAdapter\nunresolved because it extends the class\n  com.android.org.conscrypt.TrustedCertificateStore .\nWithout pruning, we hit a DCHECK() in ImageWriter, checking\nthat image classes are not erroneous. And we clearly do not\nwant to put erroneous classes in the partial boot image.\n\nTest: Build partial boot image without conscrypt.\nBug: 119868597\nChange-Id: I6017462366a4b9e69abe1fb3d22461cab35f84c5\n"
    },
    {
      "commit": "c01dc29b86784fc54619e7f8010daf109f0af5c5",
      "tree": "4a2b47201172a515c72b7e86524055b381cd1d13",
      "parents": [
        "ea1550c1722a283ce6b7f87027c51d5c078d202b"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Dec 12 15:32:57 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 18 08:50:38 2018 +0000"
      },
      "message": "ART: Optimize use of registers for CRC32.update intrinsic\n\nUse a VIXL scratch register and specify the output register does not\noverlap with input registers.\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing\nTest: art/test.py --host --optimizing\nTest: 580-crc32\nChange-Id: If2f4b65eb1dfd5aace385dd3e571376a9867c662\n"
    },
    {
      "commit": "0b21e41260bea6c078c18eba745d43e549230fd0",
      "tree": "25e41920b8a38d01ec904a2d1a1498c1364c07fb",
      "parents": [
        "889e29aae6a7cbd3c6f8dae44f67e054e083a8b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 13:24:06 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 14 16:47:38 2018 +0000"
      },
      "message": "Pack JIT mini-debug-infos together.\n\nWe currently produce one in-memory ELF file per JITed method,\nwhich has significant overheads due to the ELF file headers.\n\nPack several of those files together regularly to save space.\nSimilarly, prune information about methods which were GCed.\n\nThis reduces the size of JIT mini-debug-info by factor of 10.\nThe final overhead is 5% to 10% relative to the JIT code size.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: Idfaff8ed9a209e871e815e527f24f36c63a57bbf\n"
    },
    {
      "commit": "5b20b358edb0c586ae2106a82be365717da82507",
      "tree": "3cda8d9774087f3f6b80681f18d03c271d113fbf",
      "parents": [
        "62f6e9055363df6b6372d86960e8d987d6c439a1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 11 19:03:20 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 10:52:08 2018 -0800"
      },
      "message": "ART: Rewrite EnsureInitialized hit case\n\nWhen an initialized class is found during EnsureInitialized, do\nnot check whether verification was attempted and fix up bits.\nInstead, ensure that all class-loading paths have that done\nwhen eventually getting here.\n\nSpecial runtime-constructed classes (primitives, arrays, proxies)\nneed code to do this work. \"Normal\" classes have the work done\nduring VerifyClass.\n\nLeave a DCHECK in as a state check. Protect state transfers with\nadditional checks.\n\nThis reduces the overhead of the interpreter which cannot elide\ninitialization checks for static accesses.\n\nBug: 115834172\nTest: m test-art-host\nChange-Id: Iacd6652583364509c37eafe81fed1198abb1b71a\n"
    },
    {
      "commit": "97991827a0ae5ee74358ce9d6215a4bbcf44f968",
      "tree": "26fa1604ea98b615a51e9f08cb67a1c692ea1aa6",
      "parents": [
        "cf923f535dd1cf0c03707bbdfca6335d3f88fa92",
        "e734fe8d4aa5f70a5798363774a4ed63357ebe20"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 13 13:05:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 13:05:20 2018 +0000"
      },
      "message": "Merge \"Add a baseline flag to JIT compile.\""
    },
    {
      "commit": "457a0174ecca0571092925219a305b5df3fa04c1",
      "tree": "c59d227949d4a8454251179eff3eb7c3a4760d9e",
      "parents": [
        "f82f53f7289e9990427dc83bfb80b60ab7c35b3b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Dec 10 13:08:27 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Dec 12 13:36:22 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: I3427faae8ba64fbc6ebc3081580361043e0b49fb\n"
    },
    {
      "commit": "e734fe8d4aa5f70a5798363774a4ed63357ebe20",
      "tree": "9cc40d68cf2b053a2bcec7fc026e10bb12d5ee93",
      "parents": [
        "5af086c98d46d7833a064c5015c5503fc5dd29f3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 12 16:00:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 12 16:29:52 2018 +0000"
      },
      "message": "Add a baseline flag to JIT compile.\n\nbug: 111397239\nbug: 119800099\nTest: m\nChange-Id: Id831b641e18a8497435839e2fbcfee1f6d60a56d\n"
    },
    {
      "commit": "afc60cd6ddcd15353698bb453716313dea241ef8",
      "tree": "708bbf11e425ddb7a75874f27d272fd5484d0bf1",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:59:31 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 11:32:37 2018 +0000"
      },
      "message": "Cleanup native debug interface api.\n\nStrongly type the DEX file arguments.\n\nRemove the need for callers to worry about locks.\n\nUse std::map instead of std::unordered_map internally.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8bd79b796b5c7da265afc43a07ed227f550116c7\n"
    },
    {
      "commit": "58431a7cf863b2eb7fe25eff6a28ec376f2f151d",
      "tree": "960357f9bc42471a0a97ba6e7da5b380aeb83f87",
      "parents": [
        "27f1997511de023e4f33329fe0c8ca984b9dece4",
        "cf1af73677cf9ce474cafe4ba7a915ac8b4b6495"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 07 13:44:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 13:44:25 2018 +0000"
      },
      "message": "Merge \"Add xz decompression method.\""
    },
    {
      "commit": "cf1af73677cf9ce474cafe4ba7a915ac8b4b6495",
      "tree": "39f373b235922d4831e7d00356e918ca55c3801d",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 04 14:31:32 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 07 11:13:29 2018 +0000"
      },
      "message": "Add xz decompression method.\n\nUse the method to check compressed data in debug builds.\n\nTest: boot.oat is identical\nChange-Id: Id796d4ba19c338522fc855f751bac00555029c79\n"
    },
    {
      "commit": "a6dd280a61bdb09f608dd920d23394a5b6223ef4",
      "tree": "b1fad48bb4d4ed7ca39ec5c250d20d1238739028",
      "parents": [
        "17ed987eeebdebbd1b923c3c2a6887a233cb7517",
        "15c5b97d0093a804881acf3a53bda8b6b4c1521d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.updateBytes intrinsic for ARM64\""
    },
    {
      "commit": "ed8b4ac3d7a78cc4976fa24a34bac92f4fd47a27",
      "tree": "8292de7f2a4e8b9c0526d05a604668da11e1980e",
      "parents": [
        "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
        "2afaff7e9171992b0e2e95d0f485782d28e1b9dc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 08:11:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 08:11:24 2018 +0000"
      },
      "message": "Merge \"Refactor CompilerDriver::CompileAll().\""
    },
    {
      "commit": "15c5b97d0093a804881acf3a53bda8b6b4c1521d",
      "tree": "ad6befd10a3d6dee0f1667d254374e267ad89ce7",
      "parents": [
        "cfc4b3ac67b364d753d970d1adcf97668114e959"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Nov 20 13:41:40 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Thu Dec 06 22:19:23 2018 +0000"
      },
      "message": "ART: Add CRC32.updateBytes intrinsic for ARM64\n\nUse crc32 instructions for\njava.util.zip.CRC32.updateBytes(int,byte[],int,int).\n\nThe intrinsic is used if a number of processed bytes is less or equal to\nkCRC32UpdateBytesThreshold. If it exceeds kCRC32UpdateBytesThreshold the\ncore library provided function is used.\n\nNote that CRC32 is an optional feature in ARMv8, this intrinsic\nis only enabled for devices supporting the CRC32 instructions.\n\nThe CL is based on code from tim.zhang@linaro.org.\n\nPerformance improvements - speedup:\narray size | Cortex-A53 | Cortex-A57\n------------------------------------\n128        | 14x        | 20x\n256        | 10x        | 14x\n512        | 8x         | 11x\n1024       | 7x         | 9x\n2048       | 6x         | 8x\n4096       | 5x         | 7x\n8192       | 5x         | 7x\n16384      | 5x         | 7x\n32768      | 5x         | 7x\n65536      | 5x         | 7x\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --target --jit\nTest: art/test/testrunner/testrunner.py --host --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --host --jit\nTest: 580-crc32\n\nChange-Id: I0054cea41b5fc3e712e18b0afc7e3eacbf41feb6\n"
    },
    {
      "commit": "7fbc4a59ba2e60d869313d7961662430df83b2cb",
      "tree": "59520285df8d2075412ddc566a0d4d96d4c7e109",
      "parents": [
        "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:26:47 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Move to using locks.h instead of mutex.h\n\nWhen only annotating lock requirements, use locks.h.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1608b03254712feff0072ebad012c3af0cc3dda4\n"
    },
    {
      "commit": "35144e5713d95e1824315481c3c5d8689e580a99",
      "tree": "514aef70ac42b209c1bc19e09631913b83cdd970",
      "parents": [
        "c345392f3c4a0d35cf1dbbd1f0e172f4f768f167",
        "1fad850a8094ab8d9eb35283b787fa781370c31b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 06 16:57:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 16:57:49 2018 +0000"
      },
      "message": "Merge \"Cleanup symbol add method in ElfBuilder.\""
    },
    {
      "commit": "2afaff7e9171992b0e2e95d0f485782d28e1b9dc",
      "tree": "96c7ea4a13e8a9a191d58002de89fb005231980e",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 30 17:01:50 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 06 16:26:43 2018 +0000"
      },
      "message": "Refactor CompilerDriver::CompileAll().\n\nTreat verification results and image classes as mutable\nonly in CompilerDriver::PreCompile(), and treat them as\nimmutable during compilation, accessed through the\nCompilerOptions. This severs the dependency of the inliner\non the CompilerDriver.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I594a0213ca6a5003c19b4bd488af98db4358d51d\n"
    },
    {
      "commit": "be50f9ae077b9d5fb4f12f693ba36cc69e9d4073",
      "tree": "edcd00b15d95aee101dd85574d1ce91b3cb35c0c",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 10:48:42 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:35:29 2018 +0000"
      },
      "message": "Simplify MakeElfFileForJIT\n\nWe only ever pass single method info to the method and\nI don\u0027t plan to use the method for anything more complex.\n\nThe JIT-related methods also know the relevant ElfTypes\nat compile time, so some of the helpers are not needed.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: Ie7815a6427ac05be15a79adeb05dccc9150441d2\n"
    },
    {
      "commit": "1fad850a8094ab8d9eb35283b787fa781370c31b",
      "tree": "e67b56f8cd410e9b52be19fddff61ad1ab8fc535",
      "parents": [
        "d378a567a435a80be9ab7eb8bfe0359c1240c0ff"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 04 15:53:44 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 04 16:01:50 2018 +0000"
      },
      "message": "Cleanup symbol add method in ElfBuilder.\n\nUse deque to avoid reallocating the cached symbols.\n\nWe never generate absolute symbols because gdb don\u0027t like them.\n\nAdd helper method to add symbols as Elf_Sym.\n\nTest: build.oat is unchanged.\nChange-Id: Id8289a71a23cf602f3f9e3e2c2a26277faf937a9\n"
    },
    {
      "commit": "807e4b30b3384e5b23da0c54710be78f17fc6345",
      "tree": "cb000ac70bffe89a907e1b63f0b58db3d8b6c4b7",
      "parents": [
        "147b5b1ab58abcc25b4c2b489ee9952d0ce70c69",
        "26c43778589d1c7598cbe6203b6545c9d3ab220a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "message": "Merge \"Add support for ANDROID_RUNTIME_ROOT variable\""
    },
    {
      "commit": "26c43778589d1c7598cbe6203b6545c9d3ab220a",
      "tree": "474167d306678366b1c90c7a9e6f824308ec7f7a",
      "parents": [
        "c89a28730fb8dff57c6cb5b18295fec45fe85d09"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Nov 23 17:56:43 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Dec 03 20:05:09 2018 +0000"
      },
      "message": "Add support for ANDROID_RUNTIME_ROOT variable\n\nThis commit introduces the ANDROID_RUNTIME_ROOT environment\nvariable in preparation for its use within the runtime module.\n\nAs a module, ART must no longer use the Android-wide\nANDROID_ROOT environment variable as the base of default\npaths for module content. ANDROID_RUNTIME_ROOT will take over\nthe responsibility. It remains a variable to unify host\nand device treatment.\n\nSome test methods (SetUpAndroidData, TearDownAndroidData\nSetUpAndroidRoot) have been renamed to clarify their purpose.\n\nBug: 119935277\nTest: build / treehugger\nChange-Id: I7c7de52911cbfa56cef90270425ed369176c4767\n"
    },
    {
      "commit": "aa6f48362b3258a5df5e527987ffe7e068eb4a79",
      "tree": "0fa8cfbebb77d2e7796084721c836b44114bdc97",
      "parents": [
        "8bda21f1d8bbc1060bf693f5d1666d3396d1cb69"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 21 18:57:54 2018 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 03 18:43:48 2018 +0000"
      },
      "message": "ART: ARM64: Pass ISA features to VIXL macroassembler.\n\nVIXL macroassembler should be initialized properly\nto support Armv8.X features in order to emit corresponding\ninstructions.\n\nTest: codegen_test.cc, relative_patcher_arm64_test.\nTest: test-art-host, test-art-target.\nChange-Id: I2f9e155c28b4d2252a3cfb19717f5d25824d5e11\n"
    },
    {
      "commit": "d378a567a435a80be9ab7eb8bfe0359c1240c0ff",
      "tree": "28e96907cda376e51289ee83d8071565f6ceba6b",
      "parents": [
        "e2ca5cfd18664ad9934102c14fd28cde2736b144",
        "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "message": "Merge \"Add image compressed blocks\""
    },
    {
      "commit": "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66",
      "tree": "75bb0ef44acf50a3108e85529f0495176afbced9",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 15:09:51 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 29 17:01:44 2018 -0800"
      },
      "message": "Add image compressed blocks\n\nAdd support for splitting the image into a set of solid blocks.\n\nAdded dex2oat option --max-image-block-size and correspodning image\nunit test.\n\nMotivation: Enable parallel image decompression in the future.\n\nBug: 116052292\nTest: test-art-host\n\nChange-Id: I37c6c6a43ef94c4a62bf38a0cf51f26ce06347ac\n"
    },
    {
      "commit": "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06",
      "tree": "b68a5f5163f8da0da87d671a225addaa2a13095f",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "message": "C++17 compatibility: make WITH_TIDY\u003d1 happy again.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: I8b69ea3815e14bb6eb27f40c0dd01a85b340a355\n"
    },
    {
      "commit": "2025488b81ac0cfa9af5cfd10c7f8a45c215d9a3",
      "tree": "101d49fadb624ee8b5a22a1866b0f319dfea8fc0",
      "parents": [
        "ef6b2aa28fec148d3fe635a34260fde8c89622c7",
        "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "message": "Merge \"ART: Some iwyu for logging.h\""
    },
    {
      "commit": "23b729e17ed437d19583f70e63d1fc8a85b5dae4",
      "tree": "80fca63f75a6aca3bbd71c383154b57572d56091",
      "parents": [
        "98034bfb4178e5054c89e5a4aa738afe1caff396",
        "c9de61cf9477e221e0dcc6470de9bf73c0559cf0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 23:39:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 27 23:39:55 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Refactor code around JIT creation.\"\""
    },
    {
      "commit": "c9de61cf9477e221e0dcc6470de9bf73c0559cf0",
      "tree": "db42f9c3b26d7543b7c378397debfc0595925ba6",
      "parents": [
        "763cd98161424cf19af2f113a6802f04860dcd6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 17:34:31 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 18:01:19 2018 +0000"
      },
      "message": "Revert^2 \"Refactor code around JIT creation.\"\n\nThis reverts commit 763cd98161424cf19af2f113a6802f04860dcd6e.\n\nBug: 119800099\n\nReason for revert: Updated the DCHECKo take into account current state\nof zygote not having a thread pool.\n\nChange-Id: I1181ff85e7aebd062ee892548b80ab3de06a5ac7\n"
    },
    {
      "commit": "a61a969e2d32c175fca043a33dcc3af04ffa41f0",
      "tree": "ca3ea7e5228bd57fcec9f171d34fa11d1a43e5fe",
      "parents": [
        "52f5fa70cbe9b99386664697186f06046d351985",
        "763cd98161424cf19af2f113a6802f04860dcd6e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 21:19:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 21:19:36 2018 +0000"
      },
      "message": "Merge \"Revert \"Refactor code around JIT creation.\"\""
    },
    {
      "commit": "763cd98161424cf19af2f113a6802f04860dcd6e",
      "tree": "bfb50d986ad25030ecfde9b3a4e1ffd8983e30f6",
      "parents": [
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "message": "Revert \"Refactor code around JIT creation.\"\n\nThis reverts commit 7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b.\n\nReason for revert: Breaks boot in debug mode\n\nBug: 119800099\nChange-Id: I6d015b04c480f76824ead936238cbf49b164b7e3\nTest: N/A\n"
    },
    {
      "commit": "be08120e6fb9b02206bad7d53d35f0131ef22fa2",
      "tree": "4f0c6fa85c3421678403f717e8666a63c53a4107",
      "parents": [
        "fd667d4165aefe51010e4fe3bd81b820ed9884ef",
        "8943fa12efd017b380ea70d5da38ee186100857b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 22 13:21:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 13:21:26 2018 +0000"
      },
      "message": "Merge \"Implement integer/long LowestOneBit intrinsic for x86\""
    },
    {
      "commit": "80e6a0917361273d471af731fee123f6b9e5e094",
      "tree": "16ffc3af15e57113e073f97955b5675244ef91f5",
      "parents": [
        "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "message": "Merge \"Refactor code around JIT creation.\""
    },
    {
      "commit": "8943fa12efd017b380ea70d5da38ee186100857b",
      "tree": "09f9f37949ac41b91092046f0a16a3a360614835",
      "parents": [
        "330d41da48a943baa467ab2ce745cd9c64998d7b"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Wed Nov 21 15:36:00 2018 +0530"
      },
      "committer": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Thu Nov 22 09:36:35 2018 +0530"
      },
      "message": "Implement integer/long LowestOneBit intrinsic for x86\n\nTest: ./test.py --host, 568-checker-one-bit\nChange-Id: Ia7e13fa3b804c0c74ee1470b306c836fc1578c15\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45",
      "tree": "67d17ea5a7eb6021dabb335730402bd28d72694a",
      "parents": [
        "79c693b3133da397cec7eaff19de631b65a0cf70"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 13:52:48 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 15:22:07 2018 -0800"
      },
      "message": "ART: Some iwyu for logging.h\n\nRemove over-broad use in headers. Fix up transitive includes.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I518fa7c8bee014b260818fca1fbde6ec47d126da\n"
    },
    {
      "commit": "f759dc027507d0092a49d9ec146dc37ca4534dd4",
      "tree": "b500f8a4724876b45b9ea49676defd1152c5ac84",
      "parents": [
        "5a78e8dbf068c544b84e98f636b30045b09451c4",
        "5c803116e26ef40ad2a9c14d3411e21d149e0c9b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 22:25:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 21 22:25:21 2018 +0000"
      },
      "message": "Merge \"ART: Add profile-compile-check support\""
    },
    {
      "commit": "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b",
      "tree": "909d18e31d319313a0729019258418980c810d79",
      "parents": [
        "c754cc8e1c2dbcb1331ec2bed3ea0787bdd2b5c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 10:03:13 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 11:09:49 2018 +0000"
      },
      "message": "Refactor code around JIT creation.\n\n- Create the JIT early on.\n- Have dedicated zygote spaces, that get assign after the fork.\n- Re-parse compiler options after fork to take into account customization\n  of debug flags by the child.\n\nCurrently, we only create the thread pool in the child, so the zygote\nisn\u0027t jitting yet.\n\nBug: 119800099\nTest: test.py, device boots\nChange-Id: I591ce933ebf54a67937ab1d05206534f55ef2f65\n"
    },
    {
      "commit": "875b4f26517ce215342746f07e41cda4c1991237",
      "tree": "16d061e67632c2980af958383db77883eabbdf1f",
      "parents": [
        "3573c3669b281e0fa6c59019d4e9de5d37e651ea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 12:59:15 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 20 13:04:36 2018 -0800"
      },
      "message": "ART: Avoid some tidy nullptr warnings\n\nSprinkle some (D)CHECKs to tell tidy our expectations.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I315b1602b20475402dd8383e1accc49e5a63eb5c\n"
    },
    {
      "commit": "1cc73291d4039283fa622ec3e1fb681a9faa3499",
      "tree": "a2b55142d24d79a4eb279195bc51136ebcb0f18d",
      "parents": [
        "c754cc8e1c2dbcb1331ec2bed3ea0787bdd2b5c3"
      ],
      "author": {
        "name": "Atul Bajaj",
        "email": "atul.bajaj@intel.com",
        "time": "Thu Nov 15 11:36:53 2018 +0530"
      },
      "committer": {
        "name": "Atul Bajaj",
        "email": "atul.bajaj@intel.com",
        "time": "Tue Nov 20 14:39:52 2018 +0530"
      },
      "message": "On x86 modified the generated instructions for case \"divide by 2\".\nAs we can use fewer instructions to represent HDiv when divide by2.\n\nGordon Peak device we see the improvement with below benchmark.\nSPECjvm2008-4T\tcompiler.compiler\t1.50%\njArtBand_all_1T\tfmath\t                4.50%\n\nTest: 411-checker-hdiv-hrem-pow2, test.py --host\n\nChange-Id: I2e6458abd082553f3a04f3d30e76c973bc902432\nSigned-off-by: Atul Bajaj \u003catul.bajaj@intel.com\u003e\n"
    },
    {
      "commit": "33f7c8aa87831945c567f57c8b860f216c4371ae",
      "tree": "9022cb2fe8bf889c0a32f4478b249145318a7a65",
      "parents": [
        "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 19 10:22:01 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 19 10:45:13 2018 +0000"
      },
      "message": "Remove CompiledMethod dependency on CompilerDriver.\n\nTest: m test-art-host-gtest\nChange-Id: Ibee78d5c54d3ff8162258963fde25065b579a000\n"
    },
    {
      "commit": "671986e1bb82de1e5af97506d08ba343f3854711",
      "tree": "dd6ac704586de5fad547913fbe9b5cbe4e537bd3",
      "parents": [
        "25242cc4c4be390e0bf3b113dfdc792c6e25c3be",
        "9c4b970db31b234d6c0358802cd14ba4262e4ce6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 16 09:47:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 09:47:01 2018 +0000"
      },
      "message": "Merge \"Rewrite image type in CompilerOptions.\""
    },
    {
      "commit": "9c4b970db31b234d6c0358802cd14ba4262e4ce6",
      "tree": "8a2f624b03fcf1fcfae3e42fe519e2900df3e52f",
      "parents": [
        "3c92ff4afe372ab0850ce95321ba4112b7f3dfdd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 15:09:02 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 15 17:05:29 2018 +0000"
      },
      "message": "Rewrite image type in CompilerOptions.\n\nPrepare for introduction of boot image extension.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nChange-Id: Id007c4aeb4ada84fe65c1148fdf67e8a412e5b74\n"
    },
    {
      "commit": "e14294cc489aa5427c3eeede59ab90d0f2b466d6",
      "tree": "93561f2e7471b87f9c035353a5b4c1b25f599daf",
      "parents": [
        "810fa41e9c19b5569d03b1d7d48eb36add1f135f",
        "d120d336878c58291b0c90114bfe4d6049c76f2a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 15 16:27:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 16:27:26 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ART: Fix breaking changes from recent VIXL update.\"\""
    },
    {
      "commit": "721538fa5c8c1a49c552453592e4bd1510995054",
      "tree": "f4fc42b589cb9e44b89038b084f61c5047114568",
      "parents": [
        "3c92ff4afe372ab0850ce95321ba4112b7f3dfdd",
        "4e3734a53614a1db710ea34b81f1cc2260790e7a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 15 12:24:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 12:24:35 2018 +0000"
      },
      "message": "Merge \"Rename HVecReduce::GetKind() to GetReductionKind().\""
    },
    {
      "commit": "3c92ff4afe372ab0850ce95321ba4112b7f3dfdd",
      "tree": "ad11302117615683e27319e1d0cc59f382a8c384",
      "parents": [
        "e923524e86b579846092487cc70d5e639d448603",
        "8786fd93e01b9c88f708c14743925489f8db8c28"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 15 09:48:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 09:48:38 2018 +0000"
      },
      "message": "Merge \"x86/x86-64: Remove broken codegen for MIN/MAX reduction.\""
    },
    {
      "commit": "4e3734a53614a1db710ea34b81f1cc2260790e7a",
      "tree": "2d1c5afdff2a46e71d6c576da2d0da0eb7e44f04",
      "parents": [
        "8786fd93e01b9c88f708c14743925489f8db8c28"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 15:45:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 18:44:19 2018 +0000"
      },
      "message": "Rename HVecReduce::GetKind() to GetReductionKind().\n\nAvoid hiding HInstruction::GetKind().\n\nTest: m test-art-host-gtest\nChange-Id: If7334af437d0a6d93b8228763451c80876aa4d00\n"
    },
    {
      "commit": "0bcbe9399dfc546db5c81b13979afc85da19d025",
      "tree": "ba60269d976c8e7587cfe3a02e0cc16fbd544f64",
      "parents": [
        "01d45400c7fb057a8c3832708ae5b237a05645db",
        "4deaa9b3780998df8d0dca9670446aeae1df93ef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 18:08:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 18:08:20 2018 +0000"
      },
      "message": "Merge changes I1617a601,Ifa324bea\n\n* changes:\n  ART: Apply --no-inline-from\u003d option on device.\n  Postpone DexCache preloading in the ImageWriter.\n"
    },
    {
      "commit": "4deaa9b3780998df8d0dca9670446aeae1df93ef",
      "tree": "c4787f31662fe9e71ab1ff8321be3850460540bc",
      "parents": [
        "38cf60adda75d4d8646a3b4caa33c239e48dee03"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 14:48:15 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 17:22:06 2018 +0000"
      },
      "message": "ART: Apply --no-inline-from\u003d option on device.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Manually check that compiling boot image with\n      appropriate options on host and on device yields\n      identical results.\nBug: 119436742\n\nChange-Id: I1617a601a3a82e2ebd687a6b53e7e8a7ff610d87\n"
    },
    {
      "commit": "8786fd93e01b9c88f708c14743925489f8db8c28",
      "tree": "23611dc79c1a9c37160827b56dce0cfa10878d1a",
      "parents": [
        "e99f73533df5e3b8c4b2afef753ee50ffb9ff050"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 15:47:03 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 15:48:38 2018 +0000"
      },
      "message": "x86/x86-64: Remove broken codegen for MIN/MAX reduction.\n\nThis broken code was currently unreachable.\n\nTest: m\nBug: 117863065\nChange-Id: I573d94bc30a53727958a6a66fb3a0afb00dcbbd2\n"
    },
    {
      "commit": "b56e8353020acda1a8285daa11c69f57060cd015",
      "tree": "cb570cb734aa7d51761985639c42b77f9b8f97d0",
      "parents": [
        "d0834e4a44440a8faf199024a030731ad26aae68",
        "12dd9aee74a588bf31f151cebba930849b4baceb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "message": "Merge \"Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\""
    },
    {
      "commit": "d0834e4a44440a8faf199024a030731ad26aae68",
      "tree": "0e9219249ed08f2f966f7a294b186ddf4d30d8cc",
      "parents": [
        "e99f73533df5e3b8c4b2afef753ee50ffb9ff050",
        "435516229e5f511d1ac4498da58372c8fece35b7"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 14 11:50:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 11:50:03 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\""
    },
    {
      "commit": "b81c59ebb56db1fc454a59570426c40b6d619c5b",
      "tree": "589277760527d8a1a53f99f07141a3e3e71a0716",
      "parents": [
        "2b021c83498e523781ef3f413ebe34a3512900b3",
        "6be1dbd3bc34b2cfa0fe257acbea273f1b6f4a53"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 10:24:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 10:24:06 2018 +0000"
      },
      "message": "Merge \"ART: Rewrite core image detection.\""
    },
    {
      "commit": "6be1dbd3bc34b2cfa0fe257acbea273f1b6f4a53",
      "tree": "1840224989e4cbd538081951d948ed6a19bc61b4",
      "parents": [
        "dbcb48fc0d0841f327d108246487a4ef3df556ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 13 13:09:51 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 10:21:55 2018 +0000"
      },
      "message": "ART: Rewrite core image detection.\n\nRemove unused compiler option `core_image_` and cache\nthe IsCompilingWithCoreImage in the CompilerOptions instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Idcf3b6c96dab9a39f823a16778e7698589442cd8\n"
    },
    {
      "commit": "435516229e5f511d1ac4498da58372c8fece35b7",
      "tree": "e510804ebf5b8f1786a7c377e1cef9fb5bb11d90",
      "parents": [
        "e5ed5bafc97e65e8d2b60ddaca48754a50ca5692"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Nov 09 15:14:54 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 13 15:15:37 2018 +0000"
      },
      "message": "Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9.\n\nReason for revert: This is the same as aosp/815019 except version_script is\nexcluded on Darwin. I think it should pass the mac targets, but haven\u0027t\ntested.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan (not on Darwin)\nTest: python frameworks/rs/build_rs.py (on Darwin, thanks Orion!)\nBug: 118374951\nChange-Id: I7a362381f6d891c6dc1304e5fcf6f8851aa67d7c\n"
    },
    {
      "commit": "e5ed5bafc97e65e8d2b60ddaca48754a50ca5692",
      "tree": "89d2da51e5e95eefbf7159e40f9fbbd6fa233b97",
      "parents": [
        "d1f1ccbd8c29962727ee859f71f11c8cfabcfaa1",
        "a66784b09f10d847b49bc878f10c45690e212f0b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 18:17:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 12 18:17:23 2018 +0000"
      },
      "message": "Merge \"Optimize mod power 2 for x86\""
    },
    {
      "commit": "a66784b09f10d847b49bc878f10c45690e212f0b",
      "tree": "a18ee4ec39a44256223b9f756159bfd535ddfde3",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Tue Nov 06 13:05:44 2018 +0530"
      },
      "committer": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Mon Nov 12 21:09:32 2018 +0530"
      },
      "message": "Optimize mod power 2 for x86\n\nTest: 411-checker-hdiv-hrem-pow2, test.py --host\n\nChange-Id: I9334a3eb2cb50df439b56c0161379fef46e58603\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "a297b55dd8be424c7cdd4328356431d62e833d8f",
      "tree": "4e1ff9218394e44fc8c99d13d4d6fe92851c6b5f",
      "parents": [
        "a5de05da46e8a93436e68e7e0d242dce46269527"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 07 11:41:01 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 08 08:59:24 2018 -0800"
      },
      "message": "Delete IsClassToCompile\n\nCompiled classes filtering is no longer a thing.\n\nBug: 26687569\nBug: 76145463\nTest: test-art-host\n\nChange-Id: Iaf4b9dcea5d9fe1eae564fbd6d373af2fdc87b14\n"
    },
    {
      "commit": "6e26c0bc10101e1023590f1b206c69baae01f0b9",
      "tree": "373ecce9d0ad42c05ab5f3319a0c1eb5410274bc",
      "parents": [
        "d4c1c08773414451dda32a4228253c0f443313a2",
        "dd121f637509a50d6744a0ad596f5dc627e0c60a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 08 12:29:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 12:29:37 2018 +0000"
      },
      "message": "Merge \"Emit bit manipulation instructions for x86 and x86_64\""
    },
    {
      "commit": "1ecd7a848ea0363a0036fad1b7e0771f57eea922",
      "tree": "f08befc96a48e721f40f597a13949b7aed68602f",
      "parents": [
        "a25b68373d9b4b131d18cc732f0aced1df0ea454",
        "9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9"
      ],
      "author": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:47:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 11:47:16 2018 +0000"
      },
      "message": "Merge \"Revert \"Link lzma and lz4 compression libs statically into libartbase and use that\"\""
    },
    {
      "commit": "9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9",
      "tree": "46602632efd61e7d1330f52e4ec0c7404ae9bad0",
      "parents": [
        "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc"
      ],
      "author": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "committer": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "message": "Revert \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 21579bec04bea8a9a6ca65ad5493016d1fcb9dcc.\n\nReason for revert: Build failure\n\nChange-Id: Ia941425b9462f478be78058b3d63a30106421de6\n"
    },
    {
      "commit": "a25b68373d9b4b131d18cc732f0aced1df0ea454",
      "tree": "0622c19fd3b883b09c14d9b75169e9329965adb2",
      "parents": [
        "82b67b2ef24a2475e88135ec63aa50270aad0254",
        "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Nov 08 10:56:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 10:56:46 2018 +0000"
      },
      "message": "Merge \"Link lzma and lz4 compression libs statically into libartbase and use that instead.\""
    },
    {
      "commit": "82b67b2ef24a2475e88135ec63aa50270aad0254",
      "tree": "f08befc96a48e721f40f597a13949b7aed68602f",
      "parents": [
        "b1fcebe160ace50dfd38efae7439640b2ac4268f",
        "1a2a5cd58b7b667b664a7c20a4887a6cd89b4776"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 08 10:28:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 10:28:48 2018 +0000"
      },
      "message": "Merge \"Move profile compilation info to CompilerOptions.\""
    },
    {
      "commit": "1a2a5cd58b7b667b664a7c20a4887a6cd89b4776",
      "tree": "8f92ca17ba6f8324881f52aa741ad5ed0f87016a",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 15:39:48 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 08 10:26:57 2018 +0000"
      },
      "message": "Move profile compilation info to CompilerOptions.\n\nRemove one HInliner dependency on the CompilerDriver.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: If6f0ab864095641b5697c8c6f5100520f91d5e53\n"
    },
    {
      "commit": "dd121f637509a50d6744a0ad596f5dc627e0c60a",
      "tree": "1e20c636cd40a5a87cae1cd0d0b55940c8111a20",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Fri Oct 26 15:03:53 2018 +0530"
      },
      "committer": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Thu Nov 08 14:50:29 2018 +0530"
      },
      "message": "Emit bit manipulation instructions for x86 and x86_64\n\nThis patch performs instruction simplification to\ngenerate instructions andn, blsmsk and blsr on\ncpus that have avx2.\n\nTest: test.py --host --64, test-art-host-gtest\nChange-Id: Ie41a1b99ac2980f1e9f6a831a7d639bc3e248f0f\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "4776987fe6e82a46398e7f211fa55990bb6d574a",
      "tree": "6af6377309458cc2a227beb8772ca318be5a0914",
      "parents": [
        "4c1784b53bb9bcb86076afce8c842d98feb0de97"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 07 13:36:36 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 07 13:59:24 2018 -0800"
      },
      "message": "ART: Small compiler-driver cleanup\n\nRemove some unused or unimplemented methods and typedefs. Move\nsome code.\n\nBug: 115837065\nTest: mmma art\nChange-Id: I96070444007d4f67b14bb563c1b7252a5a012523\n"
    },
    {
      "commit": "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc",
      "tree": "b33204570077025d4af6d2cb82dc8fa84e67b0b9",
      "parents": [
        "bf983214f7488a7923788356d1a441f518073b23"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 06 13:56:50 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 07 20:44:24 2018 +0000"
      },
      "message": "Link lzma and lz4 compression libs statically into libartbase and use that\ninstead.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 240K (219%) on 64 bit, but only these targets pack on\nextra bloat: dexanalyze, dexdump2, dexlayout(d), dexlist.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan\nBug: 118374951\nChange-Id: I16d67d99897ec0a35e1467ab561bb82ee2449983\n"
    },
    {
      "commit": "57a3e68e8bc111476f78e5e5714f8aaf44fe3d20",
      "tree": "a973609aa7220cd84289a290def586d7caa445ed",
      "parents": [
        "f0e00e5146abbc57a63ac4264db18757a538a9b1",
        "680cbf205f4560c22d96ed6f3296eb25125d99d6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 06 20:46:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 20:46:33 2018 +0000"
      },
      "message": "Merge \"Enable building art and tests with linux_bionic\""
    },
    {
      "commit": "680cbf205f4560c22d96ed6f3296eb25125d99d6",
      "tree": "7e455c872744007bb04dcda59221d0288466d986",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 31 11:00:19 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 06 10:34:35 2018 -0800"
      },
      "message": "Enable building art and tests with linux_bionic\n\nA linux_bionic built runtime can be created by modifying the\n$OUT_DIR/soong/soong.config json file to add a \u0027\"Host_bionic\": true\u0027\nentry and then running the following command:\n\n% m --skip-make $OUT_DIR/soong/host/linux_bionic-x86/\u003ctarget-file\u003e\n\nA script \u0027tools/build_linux_bionic_tests.sh\u0027 was also added that will\nbuild linux-bionic versions of host-test related files.\n\nAlso modify tests so they can be run.  Currently all run-tests pass\nwhen run on a linux_bionic host build. All gtests pass except for the\nfollowing 9 tests:\n  ArmVIXLAssemblerTest.VixlJniHelpers\n  ArmVIXLAssemblerTest.VixlLoadFromOffset\n  ArmVIXLAssemblerTest.VixlStoreToOffset\n  DwarfTest.DebugFrame\n  DwarfTest.DebugFrame64\n  DwarfTest.x86_64_RegisterMapping\n  DwarfTest.DebugLine\n  DwarfTest.DebugLineSpecialOpcodes\n  DwarfTest.DebugInfo\n\nSince these tests must be run manually without the standard\n(makefile-based) testrunner it\u0027s not clear yet whether these failures\nare important or what must be done to fix them. Several tests had\ndependencies on the actual location of the libart library that needed\nto be fixed, these tests might as well.\n\nTest: ./tools/build_linux_bionic_tests.sh\nTest: ./test/testrunner/testrunner.py --no-build --host --64 --run-test-option\u003d--bionic\nTest: find $OUT_DIR/soong/host/linux_bionic-x86/nativetest64 -mindepth 2 -type f | while read abc; do $abc; done | tee all-tests.txt\nTest: tail -n +0 -f all-tests.txt | grep FAILED\n\nBug: 31559095\nBug: 118778408\nChange-Id: I5fae4e54371e7410678619f18fcb54a3bd34e9b0\n"
    },
    {
      "commit": "57e7dbfbe34188de05f90bb0ec8520ba66383149",
      "tree": "1dbbfaa1d0afbc44cbb429ba72b65db37efd8ed6",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788",
        "0806f589a8a8e1fca573069b37761c320660aa63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 17:13:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 17:13:01 2018 +0000"
      },
      "message": "Merge \"ARM64: Support interm. address for object arrays.\""
    },
    {
      "commit": "d120d336878c58291b0c90114bfe4d6049c76f2a",
      "tree": "621768c42911df5ec9ee5d2bbd16baadd9ff1168",
      "parents": [
        "12dd9aee74a588bf31f151cebba930849b4baceb"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Oct 16 10:41:56 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 16:04:23 2018 +0000"
      },
      "message": "Revert^2 \"ART: Fix breaking changes from recent VIXL update.\"\n\nThis reverts commit 9477047a942728dd07cbb3400d5dac6d4f1e8a8a.\n\nRecent AOSP/VIXL update exposed the problem of loading two separate VIXL\nlibraries libvixl-arm and libvixl-arm64 in one process. This revert\nfixed this issue by building \u0026 loading only one libvixl from now on.\n\nTest: test-art-target, test-art-host\nTest: art-gtest-asan\n\nChange-Id: I6d59c29c0b705320d5c855017b987fc7060c32cc\n"
    },
    {
      "commit": "12dd9aee74a588bf31f151cebba930849b4baceb",
      "tree": "9d04404a17b4f3e5e9e2b1150fc575a74ecd37c2",
      "parents": [
        "5725e7c4aab576384649de60557dc1f52eb21b9f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 13:32:06 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 14:31:16 2018 +0000"
      },
      "message": "Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\n\nUsing a unified libvixl(s) saves space by sharing code that was common\nto libvixl(d)-arm and libvixl(d)-arm64 and also addresses multiple\ndefinitions issues that would cause ODR violations.\n\nTest: 32-bit-only device boot test\nTest: 32/64-bit device boot test\nChange-Id: I1d67c43897e08bc0f5743eb038fe574ce2fb54f3\n"
    },
    {
      "commit": "6b2b372eae74cc79e8aa6f37c562dcdfc4a92a6e",
      "tree": "96be7a233f0d332579022f8d34ce454228e9586d",
      "parents": [
        "adcbf7fd3f15721991523a48c95d337e56f2254b",
        "cb58b07d233c5f8e910e6e5946da8ac4ec3099f5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 10:34:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 10:34:20 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.udate(int,int) intrinsic for ARM64\""
    },
    {
      "commit": "cd5d1079692f42eed932950241f3508f93337753",
      "tree": "4f0a42cc404a17ebff74f593618fc82d0cf8425f",
      "parents": [
        "de773af6916cebb44cb45361d2e78bf4307d82da",
        "36433608e6ec075a60ef1b1753bb6669821eabca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 02 18:25:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 18:25:00 2018 +0000"
      },
      "message": "Merge \"Change ResolveStartupConstStrings default to false\""
    },
    {
      "commit": "36433608e6ec075a60ef1b1753bb6669821eabca",
      "tree": "2da1d501a0608c65921c48543a9abaf27426eae3",
      "parents": [
        "81ac31ded4df5d597aa603c53122fa1d74413b78"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 02 07:54:32 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 02 07:57:39 2018 -0700"
      },
      "message": "Change ResolveStartupConstStrings default to false\n\nIf it is true for kIsDebugBuild, it will be enable for all preopt.\n\nBug: 116059983\nTest: test-art-host\n\nChange-Id: I8bc40e5d5821501cdd4190554052d1804796197b\n"
    },
    {
      "commit": "cb58b07d233c5f8e910e6e5946da8ac4ec3099f5",
      "tree": "bd19cb9a44555adf51e2d145c322a592c6cd3527",
      "parents": [
        "e2acc339ede3c620a476827880cf68d044dcd53e"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Fri Oct 13 12:06:56 2017 +0100"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Fri Nov 02 10:07:12 2018 +0000"
      },
      "message": "ART: Add CRC32.udate(int,int) intrinsic for ARM64\n\nUse crc32 instructions for java.util.zip.CRC32.update(int,int).\n\nNote that CRC32 is an optional feature on ARMv8, this intrinsic\nis only enabled for devices with CRC32 intruction support.\n\nOriginal author: tim.zhang@linaro.org\n\nPerformance improvements in CRC32Bench.UpdateInt:\nPixel 2: 22.8x\nNexus 6P:\n  little core: 28.3x\n  big core   : 21.6x\n\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing --jit --interpreter\nTest: 580-crc32\n\nChange-Id: I1a9bc2befd2934b04103a27ce05806e919874070\n"
    },
    {
      "commit": "c1c3452e465e473df499196b387330a793b89680",
      "tree": "1b144182126bfc73c5d82d1941e1673826d39343",
      "parents": [
        "3b5062083d3e203d1c72b066150b4fe441588a25"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 31 13:56:49 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 01 17:01:31 2018 +0000"
      },
      "message": "Do not cache RequiresConstructorBarrier() results.\n\nAvoid caching the results. Caching was broken for JIT in the\npresence of class unloading; entries for unloaded dex files\nwere leaked and potentially used erroneously with a newly\nloaded dex file.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target\nBug: 118808764\nChange-Id: Ic1163601170364e060c2e3009752f543c9bb37b7\n"
    },
    {
      "commit": "3b5062083d3e203d1c72b066150b4fe441588a25",
      "tree": "aefb004034b634fe6a608cbd63f2c984f44752a5",
      "parents": [
        "a2c211ca97cce4d900a6b2047049ffbe46fd5890"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 31 14:33:58 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 01 12:22:49 2018 +0000"
      },
      "message": "ART: Cache resolved types in InstructionBuilder.\n\nAnd avoid using the CompilerDriver for class resolution\nand retrieving CompilerOptions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Icec3de58456cfeaf3f2be6e57e037fdf45e8b851\n"
    },
    {
      "commit": "a2c211ca97cce4d900a6b2047049ffbe46fd5890",
      "tree": "4fc383d217f9de000f11b99d2d5e9c834c5c8c70",
      "parents": [
        "0708fc0c096fb4126c2029d0172830cf0c8e159b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 01 09:50:52 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 01 12:17:35 2018 +0000"
      },
      "message": "Add compiling class to the DexCompilationUnit.\n\nUse it to simplify HInstructionBuilder and reduce the\nnumber of class resolution calls.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nChange-Id: Ib4f9b4ea61235841e653a03a40755a39c7de7504\n"
    },
    {
      "commit": "7f260d43e9b440f934270873c1e03eb867fa2873",
      "tree": "3285c18d7b29bb818bedabae6120baae8b444321",
      "parents": [
        "91ddef31f229e6d116cc8988b71aa77bc5083bcb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 18:09:55 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 31 11:13:04 2018 +0000"
      },
      "message": "Fix and improve ClinitCheck elimination.\n\nFix erroneous usage of the inner method\u0027s access flags\nwhile checking the class of the outer method. This allowed\nerroneous elimination of a needed ClinitCheck when inlining.\n\nTreat constructors the same way as static methods as the\ninstance allocation necessarily preceding the constructor\ncall performs the class initialization check.\n\nThe size of the aosp_taimen-userdebug prebuilts:\n - before:\n   arm/boot*.oat: 20252196\n   arm64/boot*.oat: 24030776\n   oat/arm64/services.odex: 22406664\n - after:\n   arm/boot*.oat: 20252092 (-0.1KiB)\n   arm64/boot*.oat: 24027024 (-3.7KiB)\n   oat/arm64/services.odex: 22402528 (-4.0KiB)\n(Insignificant changes.)\n\nTest: Add regression test to 174-escaping-instance-of-bad-class.\nTest: Add optimization test to 551-checker-clinit.\nTest: testrunner.py --jvm -t 174\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 62478025\nChange-Id: I591aca2c538d10cf6df1d38d59270af1de380b3e\n"
    },
    {
      "commit": "69ebc8fcfb2eb13b17209068c05f5f7add882294",
      "tree": "94905d092f5189ea18eabf325a602b94ef590a34",
      "parents": [
        "0ee508253edcdee41a80fcbf1511234ca176233d",
        "1ca718ec2de53fb5ef2a9211bfcc921311775c90"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 30 17:22:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 17:22:51 2018 +0000"
      },
      "message": "Merge \"Add PreResolved strings dex cache array\""
    },
    {
      "commit": "1ca718ec2de53fb5ef2a9211bfcc921311775c90",
      "tree": "f5ce8c3f4edd022765c343cc5a9df8ebd292f0ec",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 23 12:55:34 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 30 16:03:00 2018 +0000"
      },
      "message": "Add PreResolved strings dex cache array\n\nFor app images, this dex cache may be prepopulated to speed up\napplication startup. This new dex cache array is created when\n--resolve-startup-const-strings\u003dtrue.\n\nTest: test-art-host\nBug: 116059983\nBug: 118385560\n\nChange-Id: I379dc15174281665d7f4ceb106f7fbf51f89b921\n"
    },
    {
      "commit": "0ee508253edcdee41a80fcbf1511234ca176233d",
      "tree": "4c1471226b650c30a21aabb525392c2cebfa337a",
      "parents": [
        "eead626e0567d11ed0402e9586a99ca4a1d023eb",
        "1130659b0d948806e7ca974ead8ad2bcc1951d13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "message": "Merge \"Refactor MemMap::MapAnonymous().\""
    },
    {
      "commit": "eead626e0567d11ed0402e9586a99ca4a1d023eb",
      "tree": "57cf06ed51f580f44da42def5c47f1c47e22f4a0",
      "parents": [
        "b97c8af44dca6f0edbe80b13921bd47f9913c6fb",
        "65ed42a3d3a7bf1a42e759ed53c16b179f54813a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "message": "Merge \"Revert \"Link compression libs statically into libartbase and use those everywhere.\"\""
    },
    {
      "commit": "65ed42a3d3a7bf1a42e759ed53c16b179f54813a",
      "tree": "77930ed648604f50fe6a46059f4cc659b443ddb7",
      "parents": [
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "message": "Revert \"Link compression libs statically into libartbase and use those everywhere.\"\n\nThis reverts commit 8a94003e66f337fe84870ff68d3f6f234555cf06.\n\nReason for revert: Breaks asan and dex2oats.\n\nChange-Id: Idea760bbd2b25078ecd1ee5a39da94f6b74432a7\nbug: 118374951\n"
    },
    {
      "commit": "6e32b0059b4c3073c601018da3ca315ad568525a",
      "tree": "f4d259e7c52dcbbbdbe6a31d56720fca692af733",
      "parents": [
        "f82eb6e0309a138ea11e309ad125675efc44125b",
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 30 10:51:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 10:51:59 2018 +0000"
      },
      "message": "Merge \"Link compression libs statically into libartbase and use those everywhere.\""
    },
    {
      "commit": "1130659b0d948806e7ca974ead8ad2bcc1951d13",
      "tree": "9046a016fafc7f9bff4e34732aa8f89ed81ad46c",
      "parents": [
        "1c1442a498fd3f9ddc5d2bb04baa7ccd2d3539c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 26 14:22:59 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 10:20:32 2018 +0000"
      },
      "message": "Refactor MemMap::MapAnonymous().\n\nRemove the address argument from the shortcut overload and\nintroduce one more shortcut overload. This makes it easier\nto find all uses where we pass non-null address hint.\n\nRemove `requested_begin` parameter from some constructors\nwhere we were always passing null. Rewrite some tests to\nuse the reservation API.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 118408378\nChange-Id: Ibbbb96667e7cc11cf7fea119892463d8dbc9a8b5\n"
    }
  ],
  "next": "c57c680b16eb4857eef16134a811f4c2ff9d95f0"
}
