)]}'
{
  "log": [
    {
      "commit": "e36e7f2226e4e08b7a7094f78cb80bbe0e729c2b",
      "tree": "0787ae19a232728121a60791f3a18094529120f1",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 14:21:23 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 27 17:31:01 2018 +0000"
      },
      "message": "Store ImtIndex in ArtMethod.\n\nThis avoids recalculation and reduces pressure on the thread local cache.\n\nThis halves the time we spend hashing from 2% to 1% (maps on device).\n\nTest: ./art/test.py -b --host --64\nChange-Id: I2407bd9c222de4ddc6eea938908a1ac6d7abc35b\n"
    },
    {
      "commit": "dcfa89bfc06a6c211bbb64fa81313eaf6454ab67",
      "tree": "4aaf6da88861029e387525957bf68796cf95648c",
      "parents": [
        "fd667d4165aefe51010e4fe3bd81b820ed9884ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 31 11:04:10 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 22 12:49:26 2018 +0000"
      },
      "message": "Rename and reorganize hiddenapi::ApiList\n\nChange values of ApiList flags to make them easier to extend in the\nfuture and unify naming across all components. Light greylist is now\njust \"Greylist\", dark greylist becomes \"GreylistMaxO\".\n\nNote that the version code in \"GreylistMaxO\" must also include any\nmaintenance releases, i.e. entries on \"GreylistMaxO\" are accessible\nto apps with targetSdkVersion\u003c\u003d27 (O MR1).\n\nTest: m, phone boots\nTest: m test-art\nChange-Id: I9622e0646eb265008a8bb2652270876ae95dac84\n"
    },
    {
      "commit": "fd667d4165aefe51010e4fe3bd81b820ed9884ef",
      "tree": "3b37241f04c4f9fe30ca82cbbb1a23679c03c396",
      "parents": [
        "80e6a0917361273d471af731fee123f6b9e5e094",
        "312f10ed40dd175e71eba51ecb44e550e0ac6e97"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 10:22:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 10:22:46 2018 +0000"
      },
      "message": "Merge changes I05871a8a,I8baec836\n\n* changes:\n  Refactor loading boot image.\n  Remove boot image begin/size from image header.\n"
    },
    {
      "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": "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
      "tree": "f526c1be8b78123ae3c8f9082674d75fcca63bbb",
      "parents": [
        "a13be298b6bba821187c7f768a3e7bf0506829d0",
        "f0d3002d640bc41fe572e534542e9b8670838bd7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:01 2018 +0000"
      },
      "message": "Merge \"Fix app image generation and checking with shared libraries.\""
    },
    {
      "commit": "a13be298b6bba821187c7f768a3e7bf0506829d0",
      "tree": "bc11f36c4305e359ef7deae78971263fbe37d4ef",
      "parents": [
        "f759dc027507d0092a49d9ec146dc37ca4534dd4",
        "1afdfe681436db495276d853709116c39de40c4d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:58:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:58:23 2018 +0000"
      },
      "message": "Merge \"Wait until inline cache is accessible in GetProfiledMethods.\""
    },
    {
      "commit": "1afdfe681436db495276d853709116c39de40c4d",
      "tree": "a2fe476efb313455090b419b7a83971b7f5ec29f",
      "parents": [
        "d52a6f402fac600e7432cfd59a1298659625a6d3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 09:38:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:58:15 2018 +0000"
      },
      "message": "Wait until inline cache is accessible in GetProfiledMethods.\n\nBug: 119844538\nTest: test.py\nChange-Id: I7ee0718bb866652b1913496eb3ecd3beee1d46c3\n"
    },
    {
      "commit": "f0d3002d640bc41fe572e534542e9b8670838bd7",
      "tree": "3a3532c663b71aeca0a42f5e8cf193a7a8e86f72",
      "parents": [
        "fe96083dbf14f4c8465694e0144af0e13c2bc171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 17:45:38 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 21:08:43 2018 +0000"
      },
      "message": "Fix app image generation and checking with shared libraries.\n\nWe can now have multiple class loaders in an app image.\n\nbug: 111174995\nTest: dex2oat_test, test.py\n\nChange-Id: Ie45c030b483efa78df2605fbcafb4e641b80c59a\n"
    },
    {
      "commit": "312f10ed40dd175e71eba51ecb44e550e0ac6e97",
      "tree": "19339686a5eabd5352f22aefa0e62ca1ddf7176c",
      "parents": [
        "0c78ef7f2e8f010311ce9c0715b1ab3fe28f68f6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 12:35:24 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 18:01:52 2018 +0000"
      },
      "message": "Refactor loading boot image.\n\nLoad art files first, then load oat files.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I05871a8ababaab5a59919acd7bcfd07c69cc563d\n"
    },
    {
      "commit": "0c78ef7f2e8f010311ce9c0715b1ab3fe28f68f6",
      "tree": "97755cc52e33418aacfd1cc5ebbf061085dec780",
      "parents": [
        "5a78e8dbf068c544b84e98f636b30045b09451c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 14:09:35 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 16:47:03 2018 +0000"
      },
      "message": "Remove boot image begin/size from image header.\n\nUse a single boot image range for both the heap (*.art) and\ncode (*.oat) boot files.\n\nThis is done in preparation for boot image extensions. We do\nnot want to encode multiple heap and code ranges and shall\nkeep a single boot image range for the boot image including\nextensions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119868597\nChange-Id: I8baec8361602c445652e69bdfbb57e7a7c7c6419\n"
    },
    {
      "commit": "5a78e8dbf068c544b84e98f636b30045b09451c4",
      "tree": "c7a7bb50f48711b1904cc129147b208532b5b22d",
      "parents": [
        "7ec77b412b98cf092bbf38e73b7361c2f3708a71",
        "af9cce1808dbec59d632fe85fb139852751bc479"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 21 14:10:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 21 14:10:57 2018 +0000"
      },
      "message": "Merge \"ART: add reclaim bytes ratio metrics to GC performance\""
    },
    {
      "commit": "7ec77b412b98cf092bbf38e73b7361c2f3708a71",
      "tree": "ae665c569fc3d2600fe863131bf3fea526d2d86c",
      "parents": [
        "6ba0ac5344b7f0b6d2f2ca724cfd2689398d6a53",
        "cb2e1dd8f14db0d33259d87d8c6159c278364559"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 13:13:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 21 13:13:09 2018 +0000"
      },
      "message": "Merge \"Canonicalize shared libraries in ClassLoaderContext::CreateClassLoader.\""
    },
    {
      "commit": "c10a0c60ca388ea5f45c11dd86ca0af11191015a",
      "tree": "8befa85940f28ca1c764e211f6f269daf184d28c",
      "parents": [
        "d52a6f402fac600e7432cfd59a1298659625a6d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 16 11:39:22 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 11:23:38 2018 +0000"
      },
      "message": "ART: Add boot/app image checksums.\n\nAnd check app oat files against the boot image checksum\ninstead of checking the oat checksum. The oat checksums are\nincluded in image checksum calculations and the primary\nimage checksum calculation includes the checksums of the\nsecondary images.\n\nAlso remove the obsolete \"patch delta\" to keep the size\nof the ImageHeader 8-byte aligned, remove the key-value\nstore from secondary oat files and move the oat checksum\nupdate code from oat.cc to the oat_writer.cc.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nChange-Id: If74f5f18479c44ede0503bf1911ddb9ff8f3c4f8\n"
    },
    {
      "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": "cb2e1dd8f14db0d33259d87d8c6159c278364559",
      "tree": "8fb0e0f8395f6fd7c302783198ecea7e8f41ecf6",
      "parents": [
        "42b95c491d9ce828069e523f59d6f6c10e660a5f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 11:15:13 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 09:48:02 2018 +0000"
      },
      "message": "Canonicalize shared libraries in ClassLoaderContext::CreateClassLoader.\n\nbug:111174995\nTest: class_loader_context_test\nChange-Id: I547b8d5660ac5cb600d09b8546062e4b054f0eb7\n"
    },
    {
      "commit": "2a487eb89b67d7ff030368e4e4a6ed0a3ac39003",
      "tree": "bedffc5f4ee16d07c957d06cdab5148c69bd6a56",
      "parents": [
        "875b4f26517ce215342746f07e41cda4c1991237"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 11:41:22 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 20 13:04:36 2018 -0800"
      },
      "message": "ART: Fix performance-inefficient-vector-operation\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I286e27424ac39c0fed308811dc3004e734c0560c\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": "3573c3669b281e0fa6c59019d4e9de5d37e651ea",
      "tree": "6d1cbb25f1c0a8500e8735f92be5d1338ae17700",
      "parents": [
        "27cfa8fc8c11fbf2d5a069cf767faee4f1312765",
        "41c911f23117fc691fea31f2f6a4b3c9a550762b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 20 17:15:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 20 17:15:05 2018 +0000"
      },
      "message": "Merge \"ART: Fix misc-uniqueptr-reset-release\""
    },
    {
      "commit": "27cfa8fc8c11fbf2d5a069cf767faee4f1312765",
      "tree": "9fef0ec832761675af8b56032da96fc7d89bccdc",
      "parents": [
        "11fd2ae189ced3b36525901e1769cb8bcb493c6f",
        "1c42e753a46fa1a5281695413e7b7a67b0eb2dde"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 20 15:54:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 20 15:54:06 2018 +0000"
      },
      "message": "Merge \"ART: change reference to pointer in for-loop over all collectors\""
    },
    {
      "commit": "42b95c491d9ce828069e523f59d6f6c10e660a5f",
      "tree": "b782fa1e686b98abb36797348ed85dd888987eef",
      "parents": [
        "33e5d5289c32c6129138788a5e01ce6243676373",
        "f378fff08d0bbe5104ef5d0e065a13c89df7331b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 10:00:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 20 10:00:38 2018 +0000"
      },
      "message": "Merge \"Fix parsing of shared libraries in class loader context.\""
    },
    {
      "commit": "33e5d5289c32c6129138788a5e01ce6243676373",
      "tree": "e0b0a6523dda3a54fdfdb6013ca884e726bede0e",
      "parents": [
        "d295a75d952742604eaae0530daea19dd6fd782c",
        "6b9fd8c23a27b11961fcdcf43504c06a654fb83b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 09:59:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 20 09:59:50 2018 +0000"
      },
      "message": "Merge \"Support shared libraries in ClassLoaderContext::CreateClassLoader.\""
    },
    {
      "commit": "1c42e753a46fa1a5281695413e7b7a67b0eb2dde",
      "tree": "abda4b296d13924ba660cb8ec4e0c9c3e0452cf2",
      "parents": [
        "d295a75d952742604eaae0530daea19dd6fd782c"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 16:10:24 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Nov 20 09:52:46 2018 +0000"
      },
      "message": "ART: change reference to pointer in for-loop over all collectors\n\ngarbage_collectors_ is a vector of pointers, so using `auto*` to make it\nexplicit.\n\nTest: Builds correctly\nChange-Id: I413d0a9dcc902b75182a85eac5fdc2444625d179\n"
    },
    {
      "commit": "6b9fd8c23a27b11961fcdcf43504c06a654fb83b",
      "tree": "e33849628ae15b059087395f0268d95c7dfeea73",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:25:42 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 19 21:20:58 2018 +0000"
      },
      "message": "Support shared libraries in ClassLoaderContext::CreateClassLoader.\n\nbug: 111174995\nTest: dex2oat_test, class_loader_context_test\n\nChange-Id: I482012eca408f9e064d7c3d787662376e1b0de3b\n"
    },
    {
      "commit": "41c911f23117fc691fea31f2f6a4b3c9a550762b",
      "tree": "22b86d086dee0faddf58175596ad60ff66657303",
      "parents": [
        "d295a75d952742604eaae0530daea19dd6fd782c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 11:34:16 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 11:34:16 2018 -0800"
      },
      "message": "ART: Fix misc-uniqueptr-reset-release\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: Iffed77347180aca0f356a03db02ddbe0200b1e9c\n"
    },
    {
      "commit": "d6e178e92c9ac7eb4fe433fff1dc169a0edf2ab9",
      "tree": "014cbf230b0d2433ab02a598ebe784e88ba3c5fa",
      "parents": [
        "498d7c1752d02f6687c2b19a077ad1942d1d6348"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 12:58:30 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 19 13:21:18 2018 +0000"
      },
      "message": "Revert^2 \"ART: add GC time ratio metrics to GC performance\"\n\nMake GC time ratio metrics work for all collectors.\n\nThis reverts commit 4d57c69ab7753690738d9dc802b5b640cb6af491.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I5cce0cf2a5204126b70b7c8fdf686986f9b3d7e7\n"
    },
    {
      "commit": "f378fff08d0bbe5104ef5d0e065a13c89df7331b",
      "tree": "2330dec2f7c79fba6e3d6c645f5e97f4250213a7",
      "parents": [
        "498d7c1752d02f6687c2b19a077ad1942d1d6348"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 19 12:52:26 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 19 12:52:26 2018 +0000"
      },
      "message": "Fix parsing of shared libraries in class loader context.\n\nThe code did not take into account shared libraries depending\non other shared libraries.\n\nbug: 111174995\nTest: class_loader_context_test\nChange-Id: I0b90cfaff72b5bd7985dbe90b5e72d5988141490\n"
    },
    {
      "commit": "498d7c1752d02f6687c2b19a077ad1942d1d6348",
      "tree": "44880394c1f46c56796a9fab7be28e7e6e8109a2",
      "parents": [
        "cddf4286775e35ad26fa6a5244c4369031735589",
        "ec43a01e0ac948c59d5b1f9c3812f2901b48942a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:11:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 17 13:11:07 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\"\""
    },
    {
      "commit": "ec43a01e0ac948c59d5b1f9c3812f2901b48942a",
      "tree": "57e1a23dcc0beba8e98841b8cf063f6153b08c9b",
      "parents": [
        "3d477f3a3eea757a49ca621cc579f711f22fccdd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:10:40 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:10:40 2018 +0000"
      },
      "message": "Revert \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\"\n\nThis reverts commit 3d477f3a3eea757a49ca621cc579f711f22fccdd.\n\nBug: 115837065\n\nReason for revert: Breaks jdwp tests.\n\nChange-Id: I09249331798970751a20c6b41675c3efef72adfb\n"
    },
    {
      "commit": "0f643b0b1bf60c76725cdb14b5aef1ed08a76cf7",
      "tree": "6c1a335cb475ccc86d57fbc2b6dcb2e6848937e3",
      "parents": [
        "482487d46b1c0ce5be7ad64c373695b95b86286e",
        "3d477f3a3eea757a49ca621cc579f711f22fccdd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 16 22:17:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 22:17:02 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "90402ad6df38a5d4f268903aee5d7fe56791265f",
      "tree": "33978dfb96824b13376eb4553722c007870bc58a",
      "parents": [
        "94d927690abeda849567d24958001a8a33a41e7a",
        "4d57c69ab7753690738d9dc802b5b640cb6af491"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 16 19:49:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 19:49:36 2018 +0000"
      },
      "message": "Merge \"Revert \"ART: add GC time ratio metrics to GC performance\"\""
    },
    {
      "commit": "3d477f3a3eea757a49ca621cc579f711f22fccdd",
      "tree": "b4b402d0181610c62062c8c597ef30ee2840b6b1",
      "parents": [
        "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 16:40:45 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 10:13:38 2018 -0800"
      },
      "message": "Revert^2 \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit 8248490f24e8582ce2ead8cd878d8a2c38310a48.\n\nReason for revert: Fixed instrumentation.cc\n\nBug: 115837065\nTest: m test-art-host\nChange-Id: I484833f4712c835fcaf3452dca4cae5b031d5a7d\n"
    },
    {
      "commit": "4d57c69ab7753690738d9dc802b5b640cb6af491",
      "tree": "a26e2840a559a0214c532293166d3bd03a9dac0f",
      "parents": [
        "fe21070898e13cb5e6111d8749a97a679994eb5d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 16:32:40 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 16:32:40 2018 +0000"
      },
      "message": "Revert \"ART: add GC time ratio metrics to GC performance\"\n\nThis reverts commit fe21070898e13cb5e6111d8749a97a679994eb5d.\n\nReason for revert: Segfaults when CC is not enabled.\n\nBug: 112187497\nChange-Id: I9757097981a8120d893b0dbbd630ac4a87090a1d\nTest: TreeHugger\n"
    },
    {
      "commit": "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa",
      "tree": "57e1a23dcc0beba8e98841b8cf063f6153b08c9b",
      "parents": [
        "d94653399e2f9f06bbdf629f2affbf9a4fa73b8f",
        "2bb2fbd2879d0a6d9ebf7acff817079dde89b417"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 14:21:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 14:21:47 2018 +0000"
      },
      "message": "Merge changes Idc6e518c,Ia1cc0506\n\n* changes:\n  Create SdkVersion enum, migrate users to it\n  Runtime flags only for fast/slow hiddenapi path\n"
    },
    {
      "commit": "d94653399e2f9f06bbdf629f2affbf9a4fa73b8f",
      "tree": "738b85fd1f00a750fc912c9e8ba3d48178f23238",
      "parents": [
        "5f24607b47433da7862a8b51f7355008256ae037",
        "fe21070898e13cb5e6111d8749a97a679994eb5d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 16 13:40:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 13:40:42 2018 +0000"
      },
      "message": "Merge \"ART: add GC time ratio metrics to GC performance\""
    },
    {
      "commit": "5f24607b47433da7862a8b51f7355008256ae037",
      "tree": "c5e1bb93c0e7ed0c3b481ab135c60f83a64da671",
      "parents": [
        "bf86464506dce85a7b67ea1c4eb3e1f4f1d2085f",
        "b9f1af59681a73a33c86dd5919cc11874623d9d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 13:33:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 13:33:50 2018 +0000"
      },
      "message": "Merge \"Small cleanups in jit_code_cache.\""
    },
    {
      "commit": "bf86464506dce85a7b67ea1c4eb3e1f4f1d2085f",
      "tree": "92627875da9819cfafe2b6f69b2f74961da6b350",
      "parents": [
        "4c8cf12c4d7a55566054c24e3067672213502ee0",
        "2b6b3e5317c2159e97e56173fa559479f757980e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 13:04:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 13:04:52 2018 +0000"
      },
      "message": "Merge \"EnableDebugger: handle the case when hard RLIMIT_CORE is \u003cinf.\""
    },
    {
      "commit": "2bb2fbd2879d0a6d9ebf7acff817079dde89b417",
      "tree": "d607aa6bfb2ea55fbfd875237b37c79f3cfed5f6",
      "parents": [
        "85865697ff9fabede3d64ff64cde72727c3fc4c1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 13 18:24:26 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Create SdkVersion enum, migrate users to it\n\nCreates a new SdkVersion enum with integer codes of known\nAndroid SDK versions, together with helper functions for common\npredicates. Also converts target_sdk_version_ in Runtime to\nuint32_t and cleans up its uses.\n\nTest: m test-art\nChange-Id: Idc6e518c8675068bf952d0256686c88bb0eb833e\n"
    },
    {
      "commit": "85865697ff9fabede3d64ff64cde72727c3fc4c1",
      "tree": "0c67639c4c286149fa3f06f5f412683e39014790",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 17:26:20 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Runtime flags only for fast/slow hiddenapi path\n\nWith more flags being supported in the dex file, stop copying all of\nthem into ArtField/ArtMethod access flags. Instead, store the\ninformation needed to figure out whether to enter the slow path and\nretrieve full access flags from dex or not.\n\nAt the moment, the only runtime flag is kAccPublicApi assigned to all\nclass members on the whitelist.\n\nThe CL also moves hardcoded API membership of intrinsics out of\nArtMethod and into hidden_api.h, and moves ArtMethod::SetIntrinsic\ninto the .cc file.\n\nTest: m test-art\nChange-Id: Ia1cc05060dbc22341768161dfd8697c6158e803a\n"
    },
    {
      "commit": "b9f1af59681a73a33c86dd5919cc11874623d9d8",
      "tree": "d31e900f951201e406c524efd75318ebdbe4d649",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:30:29 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:30:29 2018 +0000"
      },
      "message": "Small cleanups in jit_code_cache.\n\nMake methods private, remove dead code.\n\nTest: test.py\nChange-Id: I4554d35c64115c6dd5308b6d509659e5c60346b1\n"
    },
    {
      "commit": "9296e18a6af90d88ff3b557031659216c0cd130e",
      "tree": "6c201062f3be6ec58dd6db21d4c21a81e8f977ae",
      "parents": [
        "671986e1bb82de1e5af97506d08ba343f3854711",
        "80a560c91a0c46215f4d554a58528fc24b00fc09"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 09:58:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 09:58:16 2018 +0000"
      },
      "message": "Merge \"Add native support for BaseDexClassLoader shared libraries.\""
    },
    {
      "commit": "c980df6125e53bbf8e5e7e8eecb3f9b0125bae5e",
      "tree": "966f80eb3959b94a5508525b0726e05f53ac7286",
      "parents": [
        "3d719ed950772e1ec70fe082863e907d5acd3fcf",
        "8248490f24e8582ce2ead8cd878d8a2c38310a48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 01:18:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 01:18:34 2018 +0000"
      },
      "message": "Merge \"Revert \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "8248490f24e8582ce2ead8cd878d8a2c38310a48",
      "tree": "f542af6560561526fc413e361e3323a615b5429c",
      "parents": [
        "36f8d22c672498753b9edc66ba11acc9816b2a17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 00:47:49 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 00:47:49 2018 +0000"
      },
      "message": "Revert \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit 36f8d22c672498753b9edc66ba11acc9816b2a17.\n\nReason for revert: Seems to be breaking test 687\n\nBug: 115837065\nChange-Id: I83bb1a9d76cc701c3d582778e5047ebd5dab5d29\nTest: TreeHugger\n"
    },
    {
      "commit": "e09485f761220ff16129d25b773ab968d3c2d76b",
      "tree": "87f93a1c3e2d2c7805859231c9cb7dd92a778bba",
      "parents": [
        "9e70fafa9ca3bf055fe1e9d8cba4ddb4ee090776",
        "36f8d22c672498753b9edc66ba11acc9816b2a17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 15 21:44:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 21:44:18 2018 +0000"
      },
      "message": "Merge \"ART: Add StackVisitor accepting a lambda\""
    },
    {
      "commit": "2b6b3e5317c2159e97e56173fa559479f757980e",
      "tree": "8addc71e8a406db574017764b6cc4ed71b39bd7d",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Nov 05 17:03:43 2018 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Nov 15 13:23:59 2018 -0800"
      },
      "message": "EnableDebugger: handle the case when hard RLIMIT_CORE is \u003cinf.\n\nASan and HWASan set rlim_cur \u003d rlim_max \u003d 0 for RLIMIT_CORE.\n\nBug: 112438058\nTest: SANITIZE_TARGET\u003dhwaddress, no RLIMIT_CORE warnings in logcat\n\nChange-Id: I8839705673c371b9b393eca36c7519a1ea73d7be\n"
    },
    {
      "commit": "bbf9b051af797130b37911beca75b9d763d8c092",
      "tree": "d267b65bbeb280ef2f13af02e7a00bbdbf982f84",
      "parents": [
        "e14294cc489aa5427c3eeede59ab90d0f2b466d6",
        "bc1e0fab934b7fb03545f08085b109d6508b17d0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 15 17:57:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 17:57:52 2018 +0000"
      },
      "message": "Merge \"Reduce class loader updating overhead.\""
    },
    {
      "commit": "bc1e0fab934b7fb03545f08085b109d6508b17d0",
      "tree": "87048ec7cccd78f9819ba16d95539a8deae51659",
      "parents": [
        "0bcbe9399dfc546db5c81b13979afc85da19d025"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 16:18:18 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 16:40:48 2018 -0800"
      },
      "message": "Reduce class loader updating overhead.\n\nAvoid unnecessary read barrier for comparing class loader agianst\nnull. Avoid transaction check.\n\nDeleted the helper class to simplify the code.\n\nThe time goes from ~3.8ms to ~2.9ms on Maps.\n\nTest: test-art-host\nBug: 116052292\n\nChange-Id: I4a966a9bb39400ba58d7cf3e0b2c8ab4747d65ed\n"
    },
    {
      "commit": "fe21070898e13cb5e6111d8749a97a679994eb5d",
      "tree": "37705205f769a95680a10df3d259bbdb211f6918",
      "parents": [
        "2b021c83498e523781ef3f413ebe34a3512900b3"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Thu Nov 08 20:51:20 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Wed Nov 14 20:05:14 2018 +0000"
      },
      "message": "ART: add GC time ratio metrics to GC performance\n\nRecord CPU time for GC cycle and the whole process. Print the ratio if\nDumpGCPerformanceOnShutdown is set.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I4a7c3cd457662e57faff21f506a5bc4ba143ee25\n"
    },
    {
      "commit": "f50ac103426588d9f7c014ef2d2b9c766f8dc25e",
      "tree": "bac6537c3cd63cc382e24d9b94f0eb64f18ab0a4",
      "parents": [
        "b56e8353020acda1a8285daa11c69f57060cd015"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 17 18:00:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 14 16:49:40 2018 +0000"
      },
      "message": "Simplify hidden_api.h logic\n\nRefactor GetMemberAction to return a boolean whether access to a class\nmember should be denied. This also moves StrictMode consumer\nnotification into hidden_api.cc and removes notifications for toasts.\nTests are changed accordingly.\n\nTest: phone boots\nTest: m test-art\nMerged-In: I02902143de0ff91d402ba79c83f28226b1822a6f\nChange-Id: I02902143de0ff91d402ba79c83f28226b1822a6f\n(cherry picked from commit 51995f90adaa0e5047dee56d22f15e4225e70517)\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": "e99f73533df5e3b8c4b2afef753ee50ffb9ff050",
      "tree": "cbb3a6ee148bb2456b454bfbfffee5527842a266",
      "parents": [
        "b81c59ebb56db1fc454a59570426c40b6d619c5b",
        "790ff518ad4d08ed4fb105f5c011c0ec47e092cd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 10:24:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 10:24:59 2018 +0000"
      },
      "message": "Merge \"Add mterp checks after monitor entry/exit opcodes.\""
    },
    {
      "commit": "790ff518ad4d08ed4fb105f5c011c0ec47e092cd",
      "tree": "bf9def1c8a0567905bec3946ee67fe7410ca3715",
      "parents": [
        "4630f9a032575f75be317fe0d8dc054bbce5790a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 09 18:55:19 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 10:01:02 2018 +0000"
      },
      "message": "Add mterp checks after monitor entry/exit opcodes.\n\nCheck whether we are allowed to continue running in mterp.\n\nThis tries to enforce that we bail out of mterp after suspend point\nif needed (in particular, if debugger event switches interpreters).\n\nTest: ./art/test.py -b -r --interpreter\nChange-Id: If2d55e5ece22831ef864c181b7d6d5c70ca50e5d\n"
    },
    {
      "commit": "9e9fc708e32ace076b8fc9f809055662e1090762",
      "tree": "1811ae6bf398986bc5a14e8f9b0b50f0b92f6483",
      "parents": [
        "e5a56803936246a0c5d8ddbaeba59e009cec6f82",
        "d6f301911ad977365db969283b67466dd4a76424"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 14 00:22:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 00:22:20 2018 +0000"
      },
      "message": "Merge \"Remove kDex2OatHostKey from oat-header\""
    },
    {
      "commit": "e5a56803936246a0c5d8ddbaeba59e009cec6f82",
      "tree": "a367c07dbe9bb1eb844d02b4e868dab8e43788c9",
      "parents": [
        "d8b963fecd89b0624140fe78c8fd0604d24c8353",
        "c6bd42aa7e0ad6f394a55c4d972570b441574e85"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 13 22:27:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 22:27:51 2018 +0000"
      },
      "message": "Merge changes Iefe0f159,Ibe5bf113,Ic3d158d5\n\n* changes:\n  ART: Fix deopt manager JIT attempt\n  ART: Add Runtime::IsSafeMode\n  ART: Split Runtime::IsNativeDebuggable\n"
    },
    {
      "commit": "d8b963fecd89b0624140fe78c8fd0604d24c8353",
      "tree": "8d75dec45d2266401313de20836f23a195201867",
      "parents": [
        "57ee3473336912d89d7b9c2925dfbeab6eda3277",
        "9893c4773ce1da4dfb9f15140e93bf785abd89f7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 13 22:10:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 22:10:47 2018 +0000"
      },
      "message": "Merge \"Add missed null check in ClassLoaderContext::VerifyClassLoaderContextMatch.\""
    },
    {
      "commit": "83e2049b2ac8de0adac04a9a4229dbec7909df1e",
      "tree": "d34e9dd9d842eb929e57afee6c2a0d723778d336",
      "parents": [
        "d32ce09761ed5c6ecdd95396d0d668f04ccffd44"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 07 11:12:26 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 13 10:23:16 2018 -0800"
      },
      "message": "ART: Add Runtime::IsSafeMode\n\nEnsure that the safe mode can only be checked in non-zygote\nprocesses.\n\nBug: 119063276\nTest: m test-art-host\nTest: device boots\nChange-Id: Ibe5bf113c042dfb572c8a94ab17406cb8933ee62\n"
    },
    {
      "commit": "d32ce09761ed5c6ecdd95396d0d668f04ccffd44",
      "tree": "28c16c8ef6d6562af6e9cf33522bcd7ca6fada1d",
      "parents": [
        "57ee3473336912d89d7b9c2925dfbeab6eda3277"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 07 11:08:40 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 13 10:23:16 2018 -0800"
      },
      "message": "ART: Split Runtime::IsNativeDebuggable\n\nEnsure that the main version cannot be called in the zygote.\n\nBug: 119063276\nTest: m test-art-host\nTest: device boots\nChange-Id: Ic3d158d5d75fa6982411402f69062ac333b20798\n"
    },
    {
      "commit": "d6f301911ad977365db969283b67466dd4a76424",
      "tree": "00bfbfac77f6242f41c7951e35804296a0e90ec1",
      "parents": [
        "bad5c9a1f43148dc71f3b8e61cc201bc815fbac6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 12 16:49:31 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 13 10:21:23 2018 -0800"
      },
      "message": "Remove kDex2OatHostKey from oat-header\n\nThe oat-header used to include the ISA of the dex2oat used to compile\nthe image. This made cross-compiling a bitwise identical oat/image\nfile impossible and is not terribly useful so it was removed.\n\nTest: ./test.py --host\nBug: 119332327\nChange-Id: If9d21b5997907ee01283d1345749a01e2a2359ea\n"
    },
    {
      "commit": "9893c4773ce1da4dfb9f15140e93bf785abd89f7",
      "tree": "3b665e3d9064957f6cc5b8eb9cf7b0c5177c91bc",
      "parents": [
        "61f9bf1d48c43a4b65df5d0fe2d70c4ee87921f8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 13 15:39:53 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 13 15:39:53 2018 +0000"
      },
      "message": "Add missed null check in ClassLoaderContext::VerifyClassLoaderContextMatch.\n\nbug: 119441748\nTest: class_loader_context_test\nChange-Id: I68301a568eb321b42209584a3328e9a1b0fcc7ba\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": "af9cce1808dbec59d632fe85fb139852751bc479",
      "tree": "6c667f9f6232f259bbe8ca7a4e62f37dc28a7537",
      "parents": [
        "01812cf9fa9a28d15f24b47a4b2893dd8e06e7a4"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Wed Nov 07 09:58:35 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Nov 13 15:10:10 2018 +0000"
      },
      "message": "ART: add reclaim bytes ratio metrics to GC performance\n\nRecord reclaimed bytes ratio (number of bytes reclaimed after a GC)\nand print it if DumpGCPerformanceOnShutdown is set.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I306e86c52102ab06d5279705ebc9e35b22b6b748\n"
    },
    {
      "commit": "57ee3473336912d89d7b9c2925dfbeab6eda3277",
      "tree": "6bc700e4894039514d444ff8f635a5bf3ef8c5c3",
      "parents": [
        "61f9bf1d48c43a4b65df5d0fe2d70c4ee87921f8",
        "dbcb48fc0d0841f327d108246487a4ef3df556ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 13 13:16:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 13:16:01 2018 +0000"
      },
      "message": "Merge \"Avoid unnecessary read barriers in mirror::Class.\""
    },
    {
      "commit": "61f9bf1d48c43a4b65df5d0fe2d70c4ee87921f8",
      "tree": "aac38c1eec083a7d2a242ad89d90d48353480355",
      "parents": [
        "01812cf9fa9a28d15f24b47a4b2893dd8e06e7a4",
        "104883b04617a850adf11f05e57c2fd29e09c83c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 13 11:46:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 13 11:46:21 2018 +0000"
      },
      "message": "Merge \"Clean up primitive array helpers in Object.\""
    },
    {
      "commit": "5cc0e75552b379e051168d832474f4d3989e9f74",
      "tree": "c06f4bdb02252442fe68c2e978106862a0f93a1c",
      "parents": [
        "a344b8c25a98471d99632a28530b03ed770f8e2e"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Fri Nov 09 12:30:46 2018 -0800"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Mon Nov 12 17:32:59 2018 +0000"
      },
      "message": "Emit JVMTI events for LockSupport.park\n\nThis restores the behavior from when park was implemented with\nwait/notify, except that the blocker object is used as the monitor\nrather than the Thread that is parking.\n\nBug: 28845097\nTested: ./test/run-test --jvm 1931\n\nChange-Id: I523d719ca3e49a538c06f48f032b322fb91e147e\n"
    },
    {
      "commit": "dbcb48fc0d0841f327d108246487a4ef3df556ed",
      "tree": "3abcfa87be3178d040739c465ce54f90dda96aa6",
      "parents": [
        "104883b04617a850adf11f05e57c2fd29e09c83c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 11:47:04 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 16:35:06 2018 +0000"
      },
      "message": "Avoid unnecessary read barriers in mirror::Class.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Id98ebedf185bfc7f31eda506604c072f68b7a084\n"
    },
    {
      "commit": "104883b04617a850adf11f05e57c2fd29e09c83c",
      "tree": "51d436588505a3ead506d633bdf97c9b4c934ae0",
      "parents": [
        "00e96d054e2b656d4d0f99fc141d1701af4dba23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 09 17:12:23 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 15:26:21 2018 +0000"
      },
      "message": "Clean up primitive array helpers in Object.\n\nRefactor these helpers and avoid read barriers. Remove\nClass::Is{Int,Long}ArrayClass() and use the Object helpers\ninstead.\n\nRemove the AsByteSizedArray() and AsShortSizedArray()\nhelpers that essentially break the type system and rewrite\ntheir users, adding appropriate notes. {Float,Double}Array\nuses in Unsafe would have previously failed a DCHECK().\n\nTest: Additional test in 004-UnsafeTest.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I88b7e3df7de883f64cfc5eb437a40646f2884685\n"
    },
    {
      "commit": "4630f9a032575f75be317fe0d8dc054bbce5790a",
      "tree": "8707efe278793db2825ae021cd8d7dd466e4d2d4",
      "parents": [
        "bad5c9a1f43148dc71f3b8e61cc201bc815fbac6",
        "c665d6368e85a5eb8055a58c535b41777c97d7c7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 09 21:42:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 09 21:42:39 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Notify waiters when releasing the monitor\"\""
    },
    {
      "commit": "bad5c9a1f43148dc71f3b8e61cc201bc815fbac6",
      "tree": "755c3378d35c4f5fe96423ec58a8a48e4b5d1b4b",
      "parents": [
        "00e96d054e2b656d4d0f99fc141d1701af4dba23",
        "e260e5438ff0dc4a4a3547c434e2364ad039f43a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 09 15:57:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 09 15:57:44 2018 +0000"
      },
      "message": "Merge \"ART: add GC live ratio metrics to GC performance\""
    },
    {
      "commit": "c665d6368e85a5eb8055a58c535b41777c97d7c7",
      "tree": "712cc488031bbf89767676d3a651df1a94ada611",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Tue Nov 06 16:20:13 2018 +0000"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Fri Nov 09 07:52:11 2018 -0800"
      },
      "message": "Revert^2 \"Notify waiters when releasing the monitor\"\n\nThis reverts commit 9cec9658ec0b7a6c715a154ec834faba853188e3.\n\nReason for revert: Changed lock ordering to not require reacquiring the\nmonitor lock while holding the wait lock.\n\nTested: 1000 iterations of ThreadStress\nBug: 117842465\nChange-Id: I7b54943052c5eba367eac86da9646bfc81bc1163\n"
    },
    {
      "commit": "e260e5438ff0dc4a4a3547c434e2364ad039f43a",
      "tree": "3d1d5fbacacc1549f66dfca6796bd79ed63460de",
      "parents": [
        "9c4bb4578df6449e61c1c46ea4eee36f463b0414"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 05 13:45:59 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 09 13:11:28 2018 +0000"
      },
      "message": "ART: add GC live ratio metrics to GC performance\n\nRecord average GC live ratio (copied bytes over allocated bytes in\nform-space), and GC count for both minor and major ConcurrentCopy GC,\nand print both if DumpGCPerformanceOnShutdown is set.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I587f92d847b899c81bf7a6d7303f7b54527c6f33\n"
    },
    {
      "commit": "5f250014f4cc348a573798c4daa191ea1381078d",
      "tree": "ea7937619632fa1fa341563a5b8c443bcf77fd2f",
      "parents": [
        "fdf6401e1594e71a1e86d455d55333b939160bd9"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 14:16:38 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 09 11:42:17 2018 +0000"
      },
      "message": "Make exception handling code in switch interpreter NO_INLINE.\n\nExceptions should be rare so the code can be shared.\nThe compiler needs a bit of help with optimization.\n\nIt saves 81k(arm32) and 150k(arm64) from libart.so.\n\nPerformance difference is within noise (golem using the switch).\n\nTest: \"./art/test.py -b -r --interpreter --host\" with switch interpreter.\nChange-Id: I08a5690ceaf6b3cae8c2a486ab809e5604b88e0a\n"
    },
    {
      "commit": "8ed45c876077771455d63dd7e315b439230812f8",
      "tree": "239cc6db092fa00908af0be433b80baff16b172e",
      "parents": [
        "a5de05da46e8a93436e68e7e0d242dce46269527"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 15:08:57 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 17:09:16 2018 +0000"
      },
      "message": "Add test configuration for the switch interpreter.\n\nBug: 31358597\nTest: ./art/test/testrunner/run_build_test_target.py art-interpreter-cxx\nChange-Id: Iebb7a3a5168a27654984f3749a7b86542422671b\n"
    },
    {
      "commit": "a4a96afd95e0819f4f35ece733e9a0731355d0d2",
      "tree": "60abbacda9fcbbdb56392e540aa5c683000812ff",
      "parents": [
        "d4c1c08773414451dda32a4228253c0f443313a2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 31 16:34:58 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 12:25:15 2018 +0000"
      },
      "message": "Share the preamble in switch interpreter.\n\nMove the preamble code to the main loop to avoid replicating it.\n\nThis halves per-file compile time to 0.5 min.\n\nIt saves 225k(arm32) and 348k(arm64) from libart.so.\n\nPerformance difference is within noise (golem using the switch).\n\nTest: \"test.py -b -r --interpreter --host\" with switch interpreter.\nChange-Id: I2615b3568eb79560d2d342ac3dd28f6269ee5e74\n"
    },
    {
      "commit": "d4c1c08773414451dda32a4228253c0f443313a2",
      "tree": "45fb374b124b9dc6efb8492d6cbac4d2f179f4d1",
      "parents": [
        "1ecd7a848ea0363a0036fad1b7e0771f57eea922",
        "47ad3763e0f0e74c6469e899af883a6c4d09d7bf"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 12:03:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 12:03:46 2018 +0000"
      },
      "message": "Merge \"Replace switch interpreter macros with C++ functions.\""
    },
    {
      "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": "47ad3763e0f0e74c6469e899af883a6c4d09d7bf",
      "tree": "d6e67f431a21ee8fbdfe6d2283e1e04587a8aeca",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 31 12:43:40 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 08 10:30:21 2018 +0000"
      },
      "message": "Replace switch interpreter macros with C++ functions.\n\nC++ code is more maintainable than huge macros.\n\nThe \"return\" statement was used within the macros to skip the rest\nof the interpreted opcode.  This is slightly more tricky in functions.\nAll such use cases have been replaced with \"return false\", and the\ncalling functions always check the return value and propagate it up.\n\nPerformance difference is within noise (golem using the switch).\n\nThis halves per-file compile time to 1min.\n\nTest: \"test.py -b -r --interpreter --host\" with switch interpreter.\nChange-Id: I01d861dec1c4a7e95e412fd4b662e5a4d7bd55a8\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": "bf983214f7488a7923788356d1a441f518073b23",
      "tree": "46602632efd61e7d1330f52e4ec0c7404ae9bad0",
      "parents": [
        "24a993de16018304393cbe527c92658d81ad9f7a",
        "15a678af331af103ed59e0d9f01d690e35eb9f09"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 07 17:12:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 17:12:34 2018 +0000"
      },
      "message": "Merge \"ART: Fix internal addr2line\""
    },
    {
      "commit": "24a993de16018304393cbe527c92658d81ad9f7a",
      "tree": "9245433e3a9d92082e157afbf4779e2bf6a5473a",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8",
        "56581d89cb21ba384dad7ef19246ec6671e1ed39"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 15:13:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 15:13:12 2018 +0000"
      },
      "message": "Merge \"Clean up oat key-value store.\""
    },
    {
      "commit": "56581d89cb21ba384dad7ef19246ec6671e1ed39",
      "tree": "b88ce8bd8623b331972ae7a9c128c02855dc43a5",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 12:30:52 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 13:45:01 2018 +0000"
      },
      "message": "Clean up oat key-value store.\n\nRemove the \"image-location\" key because it is unused. Do not\nstore the \"dex2oat-host\" value (i.e. dex2oat runtime ISA) if\n--avoid-storing-invocation is specified.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ib0760f923443322f1a72d338abad2db3617036dc\n"
    },
    {
      "commit": "fe59955fc41e277bf1c60378202ba785abb1e4a8",
      "tree": "cb756f7d17bd6942e59f1d84b37b626d26b790c9",
      "parents": [
        "c2cab4b11b95147dd9dadb3378e10a891ee64ad6",
        "a7edd0d02f3aa2e6df31d6bd1de78e48797e8fc2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 07 11:07:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 11:07:20 2018 +0000"
      },
      "message": "Merge \"Fix JIT creation so it picks up runtime flags.\""
    },
    {
      "commit": "c2cab4b11b95147dd9dadb3378e10a891ee64ad6",
      "tree": "8595e62d3aa3dad700c3deec7765afacc6a9b963",
      "parents": [
        "b70c999fcc3ff4d4988e0214f4d18783ff35edf7",
        "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "message": "Merge \"Refactor ClassLinker::FindPrimitiveClass().\""
    },
    {
      "commit": "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96",
      "tree": "e230bdce1f86d411c50ded9efc588590e98df261",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 14:55:54 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:06:43 2018 +0000"
      },
      "message": "Refactor ClassLinker::FindPrimitiveClass().\n\nIntroduce ClassLinker::LookupPrimitiveClass() that never\nthrows an exception and use it to clean up callers that\nare not supposed to cause thread suspension.\n\nTest: m test-art-host-gtest\nBug: 118909457\nChange-Id: Ibfee8b7991c4a0d1fa636c85f14437c9865d1658\n"
    },
    {
      "commit": "b70c999fcc3ff4d4988e0214f4d18783ff35edf7",
      "tree": "48354e4e2375ce066f59e20fa4c5b92760a9b92d",
      "parents": [
        "2e8d6550a74e43f027f90828af8b104ddb2f0724",
        "6da8247ebe2e063cc14a5e943fa8b3416edf936a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 07 09:18:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 09:18:23 2018 +0000"
      },
      "message": "Merge \"Split interpreter_switch_impl into smaller functions.\""
    },
    {
      "commit": "a7edd0d02f3aa2e6df31d6bd1de78e48797e8fc2",
      "tree": "988a26723769395801d40d266192994eed369b22",
      "parents": [
        "c925fe6afb9d7c100b5f7c889a98c147c66e1742"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 07 03:18:16 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 07 05:54:40 2018 +0000"
      },
      "message": "Fix JIT creation so it picks up runtime flags.\n\nbug: 119063276\nTest: benchmarks, take a bugreport, check that JIT is enabled.\nTest: atest ZenModeFilteringTest with libartd and JIT at first use.\nChange-Id: Id9f0be316467064dc21edfb0a0493149678630e0\n"
    },
    {
      "commit": "15a678af331af103ed59e0d9f01d690e35eb9f09",
      "tree": "448df6221355bbbbee760bc0d98743bf0b5455be",
      "parents": [
        "c925fe6afb9d7c100b5f7c889a98c147c66e1742"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 06 17:14:10 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 06 17:14:10 2018 -0800"
      },
      "message": "ART: Fix internal addr2line\n\nTest: m test-art-host\nChange-Id: I555a196577eeef995746b6292a4728c4814f0875\n"
    },
    {
      "commit": "456b492978389d9b5384d1a730bdff55602790fd",
      "tree": "15e4c5e67f129ef7d9e00651565b22dfd41b3eb9",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 10:35:48 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 10:38:04 2018 -0800"
      },
      "message": "Add timing split for updating app image class loaders\n\nAdded since this a non-trivial portion of app image loading time.\n\nTest: test-art-host\nBug: 111397239\nBug: 116052292\nChange-Id: I922077a8929a46efaa7f5567beffee6d7b634392\n"
    },
    {
      "commit": "6da8247ebe2e063cc14a5e943fa8b3416edf936a",
      "tree": "2765ad9af2e9aa4132ca66218ee927b35943ec95",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 23 14:03:08 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 06 16:22:06 2018 +0000"
      },
      "message": "Split interpreter_switch_impl into smaller functions.\n\nSplit the uber switch statement into smaller functions.\nThose functions are still always inlined in the switch,\nso it makes little difference for the time being.\n\nHowever the separation should allow us to:\n - Remove the excessive use of macros in the interpreter.\n - Add helpers to handle similar opcodes.\n - Simplify the individual opcode handlers.\n - Simplify interactions with mterp.\n - Easily experiment (e.g. switch vs goto dispatch).\n\nPerformance difference is within noise (golem using the switch).\n\nTest: \"test.py -r --interpreter --host\" with switch interpreter.\nChange-Id: I6075b354e0439bf89061f492dd9b9cbe743145cb\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": "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788",
      "tree": "96f5a6db67ca9b4362b014e427523019b9f5e69f",
      "parents": [
        "6b2b372eae74cc79e8aa6f37c562dcdfc4a92a6e",
        "9cec9658ec0b7a6c715a154ec834faba853188e3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 12:59:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 12:59:06 2018 +0000"
      },
      "message": "Merge \"Revert \"Notify waiters when releasing the monitor\"\""
    },
    {
      "commit": "9cec9658ec0b7a6c715a154ec834faba853188e3",
      "tree": "84d926444e66b5c5f91a7ee68fa65d5efe3ba8c0",
      "parents": [
        "1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 10:50:20 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 10:50:20 2018 +0000"
      },
      "message": "Revert \"Notify waiters when releasing the monitor\"\n\nThis reverts commit 1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358.\n\nReason for revert: Break ART run-test ThreadStress by failing this\nassertion:\n\n  dalvikvm32 E 11-06 09:43:27 27100 27851 mutex-inl.h:134] Lock level violation: holding \"a thread wait mutex\" (level ThreadWaitLock - 9) while locking \"a monitor lock\" (level MonitorLock - 54)\n  dalvikvm32 F 11-06 09:43:27 27100 27851 mutex-inl.h:145] Check failed: !bad_mutexes_held\n\nBug: 117842465\nChange-Id: I888201bf5c252c8366618d9169a37e4a4cc29734\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": "adcbf7fd3f15721991523a48c95d337e56f2254b",
      "tree": "0961c8d3561f8cd5a61262d868faecba2e4309b4",
      "parents": [
        "0d95e6a1047e99050d3da740202add5e7bb30543",
        "0e15559d15570eb6283e298d67c82438f8fd2723"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 09:01:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 09:01:21 2018 +0000"
      },
      "message": "Merge \"Print the address of the sentinel object for debugging purposes.\""
    },
    {
      "commit": "0d95e6a1047e99050d3da740202add5e7bb30543",
      "tree": "8f7f99fb524ed78b8827cd5a278bcda028e17f33",
      "parents": [
        "d37979d919032f38a45ce19892c3b77d7eca3b25",
        "1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 06 06:04:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 06 06:04:41 2018 +0000"
      },
      "message": "Merge \"Notify waiters when releasing the monitor\""
    },
    {
      "commit": "6941f484fe4cc5db7c0c6e03e02dad0addf76c73",
      "tree": "03ebe94e5ef4d4c6524598148d7867bd34b23025",
      "parents": [
        "7995cf6c3c9560d4427acd2935bd4d1cc5789d2e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 05 16:46:08 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 05 16:47:31 2018 -0800"
      },
      "message": "ART: Fix JIT initialization\n\nEnsure the JIT code cache is created before the JIT for\nnon-system-server processes.\n\nBug: 118833033\nBug: 119049908\nTest: m test-art-host\nChange-Id: I99d04d0d1ad335cffe0e68dc74c5bf40de5e1d35\n"
    },
    {
      "commit": "aa31f4944936cabb8cc307890de9fa54ceda6de8",
      "tree": "7485bb1d985244ca54cba25f56585f0ac4e30039",
      "parents": [
        "ae5d77d323c8456343e30571c0f67e40b15c7af1"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Nov 01 18:57:38 2018 +0000"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Mon Nov 05 11:01:51 2018 -0800"
      },
      "message": "Revert^4 \"Implement LockSupport.park with a futex\"\n\nThis reverts commit 13f4d9631db981ae5008073db4df9c6a934fc9f3.\n\nReason for revert: Fixing ThreadStress timeouts.\n\nChange-Id: I9f8c3f56eccfadc3751049731e8d427873cc7841\n"
    },
    {
      "commit": "0e15559d15570eb6283e298d67c82438f8fd2723",
      "tree": "d95cb899bb49b067cbdcf37b7ca34a87b7e25838",
      "parents": [
        "97d40f9c7b1157783d09861ce76d3a0b3da73cbe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 05 18:31:49 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 05 18:37:26 2018 +0000"
      },
      "message": "Print the address of the sentinel object for debugging purposes.\n\nThis object is always allocated in the non-moving space, and could be\nthe one triggering a failing assertion in\nart::gc::collector::ConcurrentCopying::ProcessMarkStackRef. Print it\nas part of the information dumped when this assertions fails.\n\nNote: This is a temporary change that should be reverted after the\ncorresponding bug is closed.\n\nTest: art/test.py\nBug: 116087961\nChange-Id: I678989b4ad921fefbacbfc42218e18f7302cb174\n"
    },
    {
      "commit": "a5175541c197e7bf9b03651ea5da4e64a2ac2d27",
      "tree": "8d50a76d15f4f0d366283f43041c1661770e9540",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1",
        "d79b37b054cc7de5be093790408208a07bb799ec"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 05 09:40:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 05 09:40:59 2018 +0000"
      },
      "message": "Merge \"ART: Throw on soft verify failure in InitializeClass().\""
    },
    {
      "commit": "1ebb52ca700b6d9f9c27c3ee3e688ed17a43d358",
      "tree": "dbc70ca80226ea0abb7a404a122b81400b90f52d",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Oct 25 15:37:14 2018 -0700"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Fri Nov 02 18:06:46 2018 -0700"
      },
      "message": "Notify waiters when releasing the monitor\n\nThis avoids a ping-pong thread scheduling issue, where a waiter\nimmediately tries to acquire the monitor held by the notifier.\n\nBug: 117842465\n\nChange-Id: I33b91b066c9412b031fd6432bcb61273fb8d8fea\n"
    },
    {
      "commit": "36f8d22c672498753b9edc66ba11acc9816b2a17",
      "tree": "7a7195bf16db14d7f56f94a4d6421f6837b2f686",
      "parents": [
        "a53da8f8170ddaff3e4160641938ba1b7806202c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 08 08:13:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 02 16:01:30 2018 -0700"
      },
      "message": "ART: Add StackVisitor accepting a lambda\n\nTo simplify implementation of visitors. Rewrite some\nvisitors.\n\nBug: 115837065\nTest: mmma art\nTest: m test-art-host\nChange-Id: I04172d7626b702c1d69c63eba65526378935a25d\n"
    }
  ],
  "next": "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
}
