)]}'
{
  "log": [
    {
      "commit": "51e417b45fa13050318715d2ad3da99d90b5f334",
      "tree": "e32464e15dbce92747a0383d11498ec5d9b309b9",
      "parents": [
        "13ef0447b43ecbf18d3c4e4c72d66bbbc1815f0c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 14 17:58:21 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 15 16:18:33 2017 -0700"
      },
      "message": "Tweak ProfileSaver saving strategy\n\nTo minimize the I/O, we used to store the number of methods/classes we\nlast saved globally in the profiler saver. This is no longer viable once\nwe want to track secondary dex files for profiling because each file\nmight save a different set of methods.\n\nTo make sure we do not miss data for secondary dex profiles,\nstore the number of last saved methods separetely for each profile file.\n\nTest: test-art-host\nBug: 26719109\nChange-Id: I3a657f63d26f68c7ca83a754f6e4aa2c9d946176\n"
    },
    {
      "commit": "13439f0c4769a0768cf1bbaa7b3f2f9ee5a317c5",
      "tree": "a5d52373571fad4249544a7b27c8009233d69f9d",
      "parents": [
        "74f94dd8edb4a6070f6f7bfef6d28a8b4a21fc30"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 21 01:17:21 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 09 17:14:02 2017 -0800"
      },
      "message": "Use offline inline caches during AOT compilation\n\nAlso:\n- extend the testing script to understand profile when --profile is\npassed\n- filter inline cache types which are not loaded by the caller class\nloader\n\nTest: m test-art-host-run-test-638-checker-inline-caches\nBug: 32434870\nChange-Id: Ifcc27b3cebc79b84617412aaae64a73324151b55\n"
    },
    {
      "commit": "a6fa68f22965ae065f06bebd1388a8ebfdeedca6",
      "tree": "817791f8a5cbba017e2e2efbc156c6932440a3b1",
      "parents": [
        "7733305ab5716d1b1399bd7e261bfa6396eabba3",
        "589e71eb71477603c88b14118b2d3a33508c3c79"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 07 23:27:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 07 23:27:23 2017 +0000"
      },
      "message": "Merge \"Encode inline caches with missing types in the profile\""
    },
    {
      "commit": "77651c4bbd56d502bcf05347e641061bbebca099",
      "tree": "7965e6e8cf29f1c78fc15e3eb3d645bb681a3f7d",
      "parents": [
        "f9d80d72a686048200bcf6a7f37192f9eb75d5bd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 18:04:02 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 07 11:38:22 2017 -0800"
      },
      "message": "ART: Clean up code related to foreign dex use\n\nWe simplified the way we track whether or not a dex file is used by\nother apps. DexManager in the framework keeps track of the data and we\nno longer need file markers on disk.\n\nTest: device boots, foreign dex markers are not created anymore\n\nBug: 32871170\n\n(cherry picked from commit 868515e2606820ea96f8b9022b442f5bcc770867)\n\nChange-Id: If51b3301c845a8c3bbaf87d0e35a12c700e1d0aa\nMerged-In: I5a04d3bba29581dedf05e21b8b20d79afa9b405a\n"
    },
    {
      "commit": "589e71eb71477603c88b14118b2d3a33508c3c79",
      "tree": "95d88c7c8ba3a9b2009361d61164cef6a6339308",
      "parents": [
        "d9f647ac9a5cb0c6f112332d584756251c2cfb9f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 16:05:05 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 06 12:57:30 2017 -0800"
      },
      "message": "Encode inline caches with missing types in the profile\n\nNot all runtime types can be encoded in the profile. For example if the\nreceiver type is in a dex file which is not tracked for profiling its\ntype cannot be encoded.\n\nPreviously we would just skip over these types but that can lead to\nencode a polymorphic inline cache when in fact it should be megamorphic.\n\nWith this CL, inline caches for which types are missing are marked in\nthe profile with a special bit, kIsMissingTypesEncoding.\n\nAlso, extend profman to understand text lines which specify an inline\ncache with missing types.\n\nTest: test-art-host\n\nBug: 35927981\nBug: 32434870\nChange-Id: I34528a39c227f3133771fd4454701c1ddc234f40\n"
    },
    {
      "commit": "d9f647ac9a5cb0c6f112332d584756251c2cfb9f",
      "tree": "329c14766fa03136a9912b574ba7304ea3e44e6e",
      "parents": [
        "b2a6d1218c527a685c421984292c47d241cf4a11",
        "e0ac1151b360be7147fa20320c0b427688b1424f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 22:47:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 22:47:21 2017 +0000"
      },
      "message": "Merge \"Extend profman to generate profiles with inline caches\""
    },
    {
      "commit": "e0ac1151b360be7147fa20320c0b427688b1424f",
      "tree": "c33419b00c47b731075bcfd7b75b81f366beda91",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 13 19:03:47 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 13:12:31 2017 -0800"
      },
      "message": "Extend profman to generate profiles with inline caches\n\nExtend profman logic to generate profiles based on a simple textual\nrespresentation. This will help writing tests for profile guided\ncompilation.\n\nBefore this CL, profman was able to generate profiles based on a list of\nclasses like:\njava.lang.Comparable\njava.lang.Math\njava.lang.Object\n\nThis CL, enables profman to understand methods and classes alike. The\nnew format is:\n\n# Classes\nLjava/lang/Comparable;\nLjava/lang/Math;\n# Methods with inline caches\nLTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\nLTestInline;-\u003enoInlineCache(LSuper;)I\n\n\"LTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\"\nmeans that method `int inlineMonomorphicSubA(Super)` from class Main\nwill be added to the profile with the inline cache (SubA,SubB) for its\none and only invoke virtual.\n\n@Main#noInlineCache:(LSuper;)I+;\nmeaning that method `int noInlineCache\u0027 from class Main will be added\nto the profile with no inline cache.\n\nNote that the methods are allowed to have a single invoke virtual in\ntheir dex bytecode. That is to keep the parsing the file format\nsimple and easy to use.\n\nAlso, add a few more tests for profiles and fix an issue caused by\nwriting the dex files in a possibly wrong order.\n\nTest: m run-test-host-gtest-profile_assistant_test\nBug: 32434870\nChange-Id: I6b7340cf613007117d9818be206ccb3a27b815bf\n"
    },
    {
      "commit": "046854b83e54eef0919d27b41d34061c2274a4dd",
      "tree": "b1a49f6657c83e6850276fe6ab976a5314b30fb8",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 01 17:16:22 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 03 12:50:26 2017 -0800"
      },
      "message": "Fix dex location filtering in dex2oat\n\nPreviously we were filtering dex location against profile keys,\nthis meant qualified ones like /system/.../app.apk would not match\nthe profile key app.apk in the profile. This CL fixes changes the\nbehavior to filter based on the profile key of the dex file location.\n\nFixed OatWriter checksum for raw data case (also found by regression\ntest).\n\nAdded missing FlushCloseOutputFiles to CompileImage causing DCHECK\nfailures for File destructor.\n\nAll the fixes are regression tested by dex2oat_test.\n\nTest: test-art-host-gtest-dex2oat_test\n\nBug: 34929159\nBug: 35761072\n\nChange-Id: I1bdc949bd644bfab1c8fea0b737a132b487a653b\n"
    },
    {
      "commit": "169722b0d6c680db33a6a2d602735a09db83e71d",
      "tree": "a616720d9e00f7e078d0689b616b29b39ac751a9",
      "parents": [
        "43e07b6b16d3a84014bb4747211635b9ef3d1801"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 14:01:59 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 22:03:36 2017 +0000"
      },
      "message": "Add hooks to avoid collecting code for run-tests.\n\nensureJitCompiled ensures a method gets compiled, but does\nnot prevent it from being GC\u0027ed. Add a hammer hook to avoid\ndoing any JIT code cache GC.\n\ntest: test-art-host with gcstress and jit.\nChange-Id: I3881f10f454ded9c7a3b385d326c2e08932d39bf\n"
    },
    {
      "commit": "da3355a9af91e9825d9554658bf2020cbbe08e18",
      "tree": "2aa451b4ae91f0d0c792437b187945c4271dd70b",
      "parents": [
        "7ac79b99c09fecb33af43e435008868f48406726",
        "3b1a7f40ad69ab5332d13ed0abf0a3a1fa7f2a9e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 24 09:02:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 24 09:02:58 2017 +0000"
      },
      "message": "Merge \"Update entrypoint directly when doing JIT code cache GC.\""
    },
    {
      "commit": "3b1a7f40ad69ab5332d13ed0abf0a3a1fa7f2a9e",
      "tree": "48f2ad70be640c4f2088d0548716b5070f493997",
      "parents": [
        "d3cb7fae3acdef02dbb67729353ba4ade8944630"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 22 10:21:00 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 23 12:55:33 2017 +0000"
      },
      "message": "Update entrypoint directly when doing JIT code cache GC.\n\nOtherwise, the Instrumentation::UpdateMethodsCode might access\nthe declaring class while the GC is concurrently processing\nreferences.\n\nbug:35598395\ntest: run-libcore-tests.sh --mode\u003dhost --variant\u003dX64\nChange-Id: I0f059b1823e81672d43cf1f7eed64482f8927232\n"
    },
    {
      "commit": "e21806f053c1a001738b121e7f7807f6cb79b97a",
      "tree": "360e84befa7ac35783a712368d66c33362bba3c8",
      "parents": [
        "0def68d5f201b0a6421cabedcf951c7927f4fd50"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 22 11:49:43 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 22 11:49:43 2017 -0800"
      },
      "message": "Add more comments in GetProfiledMethods\n\nExplain why we are looking in the method dex file for array types.\n\nTest: m test-art-host\nChange-Id: Ib94475f79844968591f72f46a2c714f9971778ba\n"
    },
    {
      "commit": "0def68d5f201b0a6421cabedcf951c7927f4fd50",
      "tree": "99469d588142a876b7ed46c6428bf53d9c3d5931",
      "parents": [
        "aa442244246cc86fb20df9765fc01214eb5c187b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 21 19:00:33 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 21 19:14:38 2017 -0800"
      },
      "message": "Fix profile merges of megamorphic inline caches.\n\nTest: m test-art-host-gtest-profile_compiltion_info_test\nBug: 35644850\nChange-Id: Ib213715e263869c3aa6d4f81f0b7fe17f13b84c4\n"
    },
    {
      "commit": "4ca70a3102c10e2e77e97fc3b9180f00304ed29b",
      "tree": "3caed68e8a27b910779eec62614ff48151d9490f",
      "parents": [
        "2fee212df6f688295475f3b2ddee4f2db8db27a2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 21 16:22:24 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 21 17:02:19 2017 -0800"
      },
      "message": "Fix handling of array types when extracting the offline inline caches\n\nTest: m test-art-host\n      regression test is being worked out\nBug: 35621933\n\nChange-Id: If762db76cc0493db8c8babab62035e915b660da5\n"
    },
    {
      "commit": "940eb0c00ef531dd9a0a68dbd61e377832e81eb4",
      "tree": "c65e43a702bb781b7a2f4ebedfb6b3d131fd8312",
      "parents": [
        "9fb10fb39bcb3d9a4dc7e16f8c1d38dcc112639c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 30 19:30:44 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 16 13:52:56 2017 -0800"
      },
      "message": "Add inline caches to offline profiles\n\nAdd support for inline caches in profiles:\n- extract inline caches from the jit cache when the profile saver\nqueries the hot methods\n- bump profile version to support the new data\n- add new tests\n- inline caches are only supported for same-apk calls (including\nmultidex)\n\nTest: m art-test-host-gtest-profile_compilation_info_test\nBug: 32434870\nChange-Id: I38b4ca0a54568d2224765ff76023baef1b8fd1a2\n"
    },
    {
      "commit": "fdb7d638c17dab47984e1d325d04796bb426d9b3",
      "tree": "a352c1d8e52e18551c16bfea5bb9c564695b5239",
      "parents": [
        "8dc12b1546c7409be19a7b5dc48932011db13067"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 08 15:07:18 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 15 10:25:54 2017 +0000"
      },
      "message": "Inline methods that throw.\n\nForked from https://android-review.googlesource.com/214292\n\ntest: 637-checker-throw-inline\nbug: 30933338\nChange-Id: I184be82dfab0710af3f3796e9e486c7817fa9c60\n"
    },
    {
      "commit": "6def7024f36c39ea79b522c8c68cb253355dda8f",
      "tree": "9cca19acfe065dbc5e0d763d65d0c56a2b0387f4",
      "parents": [
        "aff5505d85612621bd112d9af1ba4cc31a4619d1",
        "eee0bd448ec057d3f224895ddb868786758eeb5b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 19:11:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 19:11:28 2017 +0000"
      },
      "message": "Merge \"Revert^6 \"Make class redefinition work with native methods on stack.\"\""
    },
    {
      "commit": "eee0bd448ec057d3f224895ddb868786758eeb5b",
      "tree": "32283e1b1ccb97bced2999a364cf21361c8d07ac",
      "parents": [
        "02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 14 15:31:45 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 14 09:28:19 2017 -0800"
      },
      "message": "Revert^6 \"Make class redefinition work with native methods on stack.\"\n\nWe were incorrectly trying to obtain the profiling information of a\nnative method.\n\nThis reverts commit 02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35.\n\nReason for revert: Fixed test failure with jit configurations\n\nTest: ART_TEST_JIT\u003dtrue mma -j40 test-art-host\n\nChange-Id: Ic7112104aec64e597d2df80db5dc2a505d2cc2dd\n"
    },
    {
      "commit": "ec0395c4ccb6a08875a31a741d69be1c5b94d0a8",
      "tree": "836b27e6c05b3405c4ec52afa51c6232a36cfae8",
      "parents": [
        "7d863344e987bde473ae4f6b607e1a49efa1ea02",
        "b93ce1853e1a28bbd6ca992c5b646aa2d2699892"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 13 20:20:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 20:20:49 2017 +0000"
      },
      "message": "Merge \"Clarify comment on JIT cache flush issue\""
    },
    {
      "commit": "7c80f2d716a7931ab66096322fcb6b951426b151",
      "tree": "e1c2edf74b50af88e5310145f49925d6d436b883",
      "parents": [
        "e27abfa9faebd3ca251716e18f97876a73bca554"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Feb 07 16:47:58 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Feb 10 14:26:21 2017 -0800"
      },
      "message": "Convert preload list to profile\n\nAdd functionality to profman to take a list of classes in a text file\n(dot notation rather than descriptors) and build a compiler profile\nfile from it.\n\nBug: 34929204\nTest: test-art-host\nChange-Id: Id867ec7b436cbd8412809a8adb093f588ff474b7\n"
    },
    {
      "commit": "b93ce1853e1a28bbd6ca992c5b646aa2d2699892",
      "tree": "4d33276a5d969385124d1745f7afbe23d760f29d",
      "parents": [
        "806ac631e53f12061cb0ae7640aa9cd0dd79243d"
      ],
      "author": {
        "name": "Kevin Brodsky",
        "email": "kevin.brodsky@linaro.org",
        "time": "Thu Dec 15 14:23:09 2016 +0000"
      },
      "committer": {
        "name": "Kevin Brodsky",
        "email": "kevin.brodsky@linaro.org",
        "time": "Fri Feb 10 15:48:16 2017 +0000"
      },
      "message": "Clarify comment on JIT cache flush issue\n\nThe original fix (#304947) is needed, but the comment was suggesting a\nhardware cause and a link with A53 errata. In all likelihood neither\nof these is true, and the issue is actually caused by a kernel issue\naffecting many Qualcomm devices (like those using the msm tree).\n\nChange-Id: Ie750e6fd9eb7130982d184c22917b5c3ea4beed0\n"
    },
    {
      "commit": "b18991b5d4c47e813874563916c5e017655d6f65",
      "tree": "c38427795f532f1a4fe62c418b22b202487d03c9",
      "parents": [
        "8d4b1189639f0d8982bde681ccbdd7c03fe6ddbf"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 08 20:58:10 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 09 09:41:45 2017 -0800"
      },
      "message": "Fix ownership of DexFile in profman\n\nDon\u0027t leak the DexFiles we open in profman.\n\nBug: 34929204\nTest: make test-art-host\nChange-Id: Ife29556117c4dd84dd3e970901a7fdf458e5ad98\n"
    },
    {
      "commit": "575d3e60c68b5cf481b615dde4a16283507b19ed",
      "tree": "4718f2747233e74268de21d804df9bfe0b7e4362",
      "parents": [
        "857acf51fbc5a931939c20e9e299c69676baf654"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 06 11:00:40 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 08 09:51:27 2017 -0800"
      },
      "message": "Clean up code info table layout\n\nPreviously:\nTable layout was computed multiple places like stack_map_stream,\nand getters. This made it difficult to add new stack map tables and\nmade the code hard to understand.\n\nThis change makes the table layout specified all inside of the code\ninfo. Updating the layout only requires changing ComputeTableOffsets.\n\nChanged the stack map inline info offset to be an index, so that it is\nnot require the inline infos are directly after the dex register table.\n\nOat file size for a large app: 94459576 -\u003e 93882040 (-0.61%)\n\nUpdated oatdump and fixed a bug that was incorrectly computing the\nregister mask bytes.\n\nBug: 34621054\n\nTest: test-art-host\n\nChange-Id: I3a7f141e09d5a18bce2bc6c9439835244a22016e\n"
    },
    {
      "commit": "4471e4f7c5874bdaf93762b6047d4a4bebc465df",
      "tree": "b4fb94ac604334a59046db0acc5ee6c6360c311b",
      "parents": [
        "b78a8af993e877d74c5938f65f95feaf2fa01321"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 30 16:40:49 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 03 15:10:38 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Give JIT thread pool workers a peer\"\"\n\nThis reverts commit 9dfb707ba2f8c2ff67d42c26e3214f5d7142b6d3.\n\nAccept a live Java thread for the JIT, and adjust the tests\naccordingly.\n\nBug: 31684920\nTest: m ART_TEST_JIT\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host\nChange-Id: I92cbae1eaae05711b9069335cf1a5f7eb58b9fd8\n"
    },
    {
      "commit": "406402baa4900c36b3fe27b03bf9e04e978e50be",
      "tree": "7efe1b7a33b70e34050249fd237abb374c795d71",
      "parents": [
        "2413dc18ad846bd230d430e216a8f48595264ab3",
        "1ebe4fe1a6cb0835197ee3a848d554b79ca9d367"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 02 18:46:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 18:46:05 2017 +0000"
      },
      "message": "Merge \"Fix creating self-recursive obsolete methods.\""
    },
    {
      "commit": "6674a744b5c83aa12aa25fad544fa5041b4b5550",
      "tree": "93216746f8bef1b657cfe9b31060002b2901dbd3",
      "parents": [
        "a85111c5f25310e3d0eac68a6f0d8cd7c6612dfe",
        "42a09cb0c6aee5de92eb4cdf6d34646dcd247840"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 17:08:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 02 17:08:16 2017 +0000"
      },
      "message": "Merge \"ART: Reduce overhead of mterp OSR checking\""
    },
    {
      "commit": "1ebe4fe1a6cb0835197ee3a848d554b79ca9d367",
      "tree": "69e01b73d1b5eccc37cf19a1daea89052de06a94",
      "parents": [
        "44790fe8b33c7a80da2e77787d5f8d4d4549114b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 30 14:57:11 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 01 15:39:49 2017 -0800"
      },
      "message": "Fix creating self-recursive obsolete methods.\n\nWe were using recursive loading of the current art method which was\nmaking us miss obsolete methods in some cases.\n\nWe could also end up checking the wrong method when walking the stack.\n\nWe also add tests for recursive obsolete methods in general.\n\nBug: 34815470\n\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue mma -j40 test-art-host\nChange-Id: I522fd4cac4e3f9d35d03b128bad6d6971cfe6c4a\n"
    },
    {
      "commit": "42a09cb0c6aee5de92eb4cdf6d34646dcd247840",
      "tree": "32a06b1cdc48cd1eeb4f6f0ba232935c5393f899",
      "parents": [
        "fbf47ea64a9f797a82030e919fa4f085c9eb5b28"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 01 09:08:31 2017 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Feb 01 09:08:31 2017 -0800"
      },
      "message": "ART: Reduce overhead of mterp OSR checking\n\nOnce mterp\u0027s branch profiling identifies a method hot enough\nto try on-stack replacement, a request is made to the JIT to compile\nthe method for OSR.  Mterp then enters a mode in which it checks\nfor completion of the compilation in order to initiate the OSR.\nCurrently, this completion check happens on every branch. In\nsituations in which the JIT is backlogged and it takes awhile for the\ncompilation to complete, the overhead of doing these checks is noticable.\n\nThis change moves from a \"check on every branch\" model to a \"check\non every Nth branch\" model.  We start with N\u003d100, which should still\nyield responsive OSR but dramatically reduce the checking overhead.\n\nBug: 32090348\nTest: m test-art-host\nTest: m test-art-target (Nexus 5x)\nChange-Id: I97442723397bb242163dc18bd4444977bcd469fa\n"
    },
    {
      "commit": "433b79a9130df5f2375b9d3d7518c1f3fb84a467",
      "tree": "dddc053886464b99be29b9ca69039d74d49605ca",
      "parents": [
        "81356645157af44152c7b7db383596b5cf3479b5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 20:54:45 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 20:54:45 2017 +0000"
      },
      "message": "Revert \"Revert \"Make --debuggable rely on JIT code.\"\"\n\nFixed by https://android-review.googlesource.com/#/c/330165/\n\nThis reverts commit 81356645157af44152c7b7db383596b5cf3479b5.\n\nChange-Id: Ifb74e1cc90ab6dea621f7f54a00b540d6ccd0cf6\n"
    },
    {
      "commit": "81356645157af44152c7b7db383596b5cf3479b5",
      "tree": "59aca3792abfa47c7424e4dac13248651e4662b2",
      "parents": [
        "a0619e25aacf8b8074132f4951f75fdbcfd42925"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 20:18:02 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 20:19:28 2017 +0000"
      },
      "message": "Revert \"Make --debuggable rely on JIT code.\"\n\nBreaks 137-cfi with ART_TEST_RUN_TEST_DEBUGGABLE\u003dtrue\n\nThis reverts commit a0619e25aacf8b8074132f4951f75fdbcfd42925.\n\nbug: 28769520\nChange-Id: Ifd7b8fc7c9b72c0a523fd57c4b1b80edd3547caa\n"
    },
    {
      "commit": "a0619e25aacf8b8074132f4951f75fdbcfd42925",
      "tree": "dddc053886464b99be29b9ca69039d74d49605ca",
      "parents": [
        "ca21dc47adeed92a15a9d3fd090bdd0e6654679c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 13:57:43 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 12:41:52 2017 +0000"
      },
      "message": "Make --debuggable rely on JIT code.\n\nRemoves -Xfully-deoptable in the process, which was added as a\ntemporary workaround until this CL.\nPartial revert of https://android-review.googlesource.com/#/c/302232/\n\nMakes things consistent with existing infrastructure:\n\n- Parse the --debuggable from the compiler options, just like\n  --compiler-filter.\n\n- Add DEBUG_JAVA_DEBUGGABLE, passed by the zygote, for debuggable apps.\n\n- Java debuggable now solely relies on JIT for simplicity.\n\n- Debugging under userdebug for non-java-debuggable apps is still\n  best effort.\n\nTest: test-art-host, jdwp\n\nbug: 28769520\nChange-Id: Id0593aacd85b9780da97f20914a50943957c858f\n"
    },
    {
      "commit": "a2f526f889be06f96ea59624c9dfb1223b3839f3",
      "tree": "769f517e6664de0e89abeadf07a39d5410fcee42",
      "parents": [
        "64e50021845b1ad9d8851596e8aaddf18be217c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 19 14:48:48 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 20 15:47:06 2017 -0800"
      },
      "message": "Compressed native PC for stack maps\n\nCompress native PC based on instruction alignment. This reduces the\nsize of stack maps, boot.oat is 0.4% smaller for arm64.\n\nTest: test-art-host, test-art-target, N6P booting\n\nChange-Id: I2b70eecabda88b06fa80a85688fd992070d54278\n"
    },
    {
      "commit": "33083d626dbf2c8b06badfd73f50e98114483059",
      "tree": "f6f5db21855a6182b591b57e6a34e5c1fc41b7d0",
      "parents": [
        "fd5f52b60cfa217fb0c4d7dcabdd0336b55990d7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 18 15:29:12 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 18 19:00:21 2017 -0800"
      },
      "message": "Rename offline_profiling_info to profile_compilation_info\n\nThis solves a long standing TODO to align the names of the files and the\nclass.\n\nBug: 32434870\nTest: test-art-host\n\nChange-Id: I2707da8fef8736a7223189d894fc00ff11bfab12\n"
    },
    {
      "commit": "dba61481035b7944173181ec9ee02aea41dd0e29",
      "tree": "8629775e657cc8968e2f8fa2af6256c7a58c7dd4",
      "parents": [
        "cb2ce333ee2d1053919fe0acc390369bea3ad77e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 08:20:29 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 11:43:14 2016 -0800"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\"\n\nA GetDeclaringClass()-\u003eGetDexCache() got inserted during the\nmerge/review process meaning that we would try to access incorrect\ndex-cache in obsolete methods in some situations.\n\nAlso when using tracing we would loop forever (or at least until an\nOOM error) in test 916 due to tracing forcing InterpretOnly mode\nmeaning methods would never be jitted.\n\nBug: 32369913\nBug: 33630159\n\nTest: ART_TEST_TRACE\u003dtrue \\\n      ART_TEST_JIT\u003dtrue   \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nThis reverts commit f6abcda293b115a9d7d8a26376ea2dcf2d1dc510.\n\nChange-Id: I0773bfcba52e3cd51a83be815c6a50c189558f48\n"
    },
    {
      "commit": "441a5e92ae49d4e78e26bc170732cb6e3d745b6b",
      "tree": "87881383fd09c1974b5ddcfc6be033a934b1a179",
      "parents": [
        "30bc64006c082935b10b500f60c0f7b6bac3b3e1",
        "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 21 09:26:36 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\""
    },
    {
      "commit": "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510",
      "tree": "a30ce596848d14c95a73449dbf2bfccf26a510b9",
      "parents": [
        "ce77fc0e7f60a15354bb20c356537cbf8b53b722"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\n\nFails in tracing mode\n\nBug: 32369913\nBug: 33630159\n\nThis reverts commit ce77fc0e7f60a15354bb20c356537cbf8b53b722.\n\nChange-Id: I1bdcf6ad467f2e31f9c5d0c3c987b90a4f5efc69\n"
    },
    {
      "commit": "1aa03b379f35f17eec1e88edfa9b345b7a992854",
      "tree": "90a81cfddb4bb33bb1c41260b3cc6e7ff305b322",
      "parents": [
        "1ffb6fc9210eabd6c272018aaae63a6ed46d89e1",
        "ca5b9dccced35a2dbf9626d92d3a44886aee097b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 20 16:42:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 20 16:42:09 2016 +0000"
      },
      "message": "Merge changes I8cc87bac,If1a92e47\n\n* changes:\n  Cleanup jvmti tests\n  Revert \"Revert \"Basic obsolete methods support\"\"\n"
    },
    {
      "commit": "ce77fc0e7f60a15354bb20c356537cbf8b53b722",
      "tree": "b4301967c423ab190a4274409d99a3d6e23f0e8a",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 01:05:52 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 19 14:26:18 2016 -0800"
      },
      "message": "Revert \"Revert \"Basic obsolete methods support\"\"\n\nThis reverts commit b81a9840b44480bfeacd74b8d9f51e06f295411d.\n\nThere were 2 issues with the original CL\u0027s test 916-obsolete-jit that\ncaused it to sporadically fail.\n\nFirst, when checking if we had jitted the function under test in\n916-obsolete-jit we failed to check to see if the function \u0027doCall\u0027,\nwhich is used to work-around bugs in our deoptimization \u0026 compilation\nsystems, had also been jitted.\n\nIn the case where the \u0027sayHi\u0027 function had been jitted but the\n\u0027doCall\u0027 function had not we would (correctly) fail to redefine the\n\u0027Transform\u0027 class since we would not be able to deoptimize the \u0027sayHi\u0027\nfunction since it is under a quick_to_interpreter_bridge (runtime)\nframe.\n\nSecondly, the function Main.isInterpretedFunction was incorrect and\nwould always return false, regardless of the actual state of the\nfunction. This would cause the test to fail as the\nquick_to_interpreter_bridge frame prevented deoptimization of the\nobsoleted function. Usually the warm-up period was enough to make sure\nthe methods were jitted anyway but this was not guaranteed.\n\nBoth of these problems become more likely to occur on systems with\nmore cpu contention such as the buildbots.\n\nTest: stress --cpu 60 \u0026; while ./test/run-test --host --jit 916; do ; done\n\nReason for revert: Fixed bug in test that was causing failures.\n\nOriginal Tests:\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: If1a92e47b90965a7dc21c5826185debe62bd1554\n"
    },
    {
      "commit": "021c5f285550bf1cfa435db6a8bc7e77843e2b7d",
      "tree": "533bc77b61d4f1123c1a14b80c2cccd7ef302418",
      "parents": [
        "913e6e6f36f6feb1d11e7c095dbbc9cea7ab01be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 16 11:22:05 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 19 12:52:58 2016 +0000"
      },
      "message": "Make 141-class-unload more robust under JIT.\n\nMake sure jit is stopped before counting maps.\n\nbug: 29712509\ntest: 141-class-unload\nChange-Id: I52c0fed74556fa228cd73c9c0bc6a1d019df0a1c\n"
    },
    {
      "commit": "ed015acdd0fbb1b837b3f74e8c5f624956189691",
      "tree": "b8ec86c504bf665cd59074fae49136dfe7c6c9f5",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 15 17:58:48 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 15 18:01:52 2016 +0000"
      },
      "message": "Flush JIT data cache when committing code.\n\nOtherwise, executing compiled code may see old data from\nthe data cache.\n\nTest: ART_TEST_JIT\u003dtrue test-art-target on arm/arm64\nTest: run-libcore-tests.sh (especially jsr166) on arm/arm64\nChange-Id: Id037c68897aa0e9ccacd4c5121f3743fb722c6f3\n"
    },
    {
      "commit": "b7cc593a34896e230aab6d9718239b4f85c2dc63",
      "tree": "fdad7132bcdf125e8c2a499bf794bc6bcbba76d3",
      "parents": [
        "bdca0a27eb034152afba52f1d499d773b81908df",
        "b81a9840b44480bfeacd74b8d9f51e06f295411d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 01:04:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 01:04:03 2016 +0000"
      },
      "message": "Merge \"Revert \"Basic obsolete methods support\"\""
    },
    {
      "commit": "b81a9840b44480bfeacd74b8d9f51e06f295411d",
      "tree": "d79a3567b272b6eb4fb94d66a537cf92bef455db",
      "parents": [
        "d8936da27b792d1ca02e59c92456a1a53c7b9905"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "message": "Revert \"Basic obsolete methods support\"\n\nThis reverts commit d8936da27b792d1ca02e59c92456a1a53c7b9905.\n\nReason for revert: Some sort of race in JIT\n\nChange-Id: Ibb4e520bb0721d6d7aa2c841a52eb5baff07740e\n"
    },
    {
      "commit": "6d736d8edb0692ac70044c18045e2fcb3d14c1e5",
      "tree": "7b7c9973a04d9231af44fc967ebe49f1c835a861",
      "parents": [
        "7a8e16c827efc866d01b5cbca835b18fe29a83ab",
        "d8936da27b792d1ca02e59c92456a1a53c7b9905"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 14 22:21:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 14 22:21:28 2016 +0000"
      },
      "message": "Merge \"Basic obsolete methods support\""
    },
    {
      "commit": "d8936da27b792d1ca02e59c92456a1a53c7b9905",
      "tree": "6a593dd426e7f4a15c651dd3b872f22fb64f09ce",
      "parents": [
        "7c73bf3518eea7544406eadfed6946411c54a267"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 28 16:24:32 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 14 13:01:27 2016 -0800"
      },
      "message": "Basic obsolete methods support\n\nAdd support for executing obsolete methods following redefinitions.\nThis support includes methods that have been jitted. This does not add\nany additional validity checks to our redefinition functions.\n\nNote using work-arounds to ensure 916 works pending some fixes to the\ncompiler, deoptimizer, or both.\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: I78ef95f484146f1fb93c37fc50f56575bdab2432\n"
    },
    {
      "commit": "9186ced255f2e7402646b5b286deebb540640734",
      "tree": "833c25fd3bbb47749265947705b4fc0f0c1ba796",
      "parents": [
        "aa2657d6d9dda2e44c6452e5f5901db78ef9b3cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 12 14:28:21 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 13 11:43:48 2016 -0800"
      },
      "message": "ART: Clean up utils.h\n\nRemove functionality provided by libbase. Move some single-use\nfunctions to their respective users.\n\nTest: m test-art-host\nChange-Id: I75594035fa975200d638cc29bb9f31bc6e6cb29f\n"
    },
    {
      "commit": "22384aeab988df7fa5ccdc48a668589c5f602c39",
      "tree": "daca06adfc92c93017618c3729af54ed40214ba4",
      "parents": [
        "0ee6447c63e354131dec78743ccabcbc964129e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 22:33:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 23:06:38 2016 +0000"
      },
      "message": "Revert \"Revert \"Add kJitTableAddress for HLoadClass.\"\"\n\nThis reverts commit d2d5262c8370309e1f2a009f00aafc24f1cf00a0.\n\nChange-Id: I6149d5c7d5df0b0fc5cb646a802a2eea8d01ac08\n"
    },
    {
      "commit": "d2d5262c8370309e1f2a009f00aafc24f1cf00a0",
      "tree": "15b542ac079f30043cd3654cf5d3c40ae3ea34d0",
      "parents": [
        "5b12f7973636bfea29da3956a9baa7a6bbe2b666"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 16:28:54 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 16:28:54 2016 +0000"
      },
      "message": "Revert \"Add kJitTableAddress for HLoadClass.\"\n\nOne test failure after merge.\n\nThis reverts commit 5b12f7973636bfea29da3956a9baa7a6bbe2b666.\n\nChange-Id: I120c49e53274471fc1c82a10d52e99c83f5f85cc\n"
    },
    {
      "commit": "5b12f7973636bfea29da3956a9baa7a6bbe2b666",
      "tree": "a2cd41c1d3c09abc594a76af11b7bebc302a2870",
      "parents": [
        "0dd27eb2b51d030866c25dbf8e7bb737eb35a888"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 09 11:26:35 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 12 11:50:24 2016 +0000"
      },
      "message": "Add kJitTableAddress for HLoadClass.\n\nThis new kind loads classes from the root table associated with\nJIT compiled code.\n\nAlso remove kDexCacheAddress, which is replaced by kJitTableAddress.\n\ntest: ART_TEST_JIT\u003dtrue test-art-host-jit test-art-target-jit\nChange-Id: Ia23029688d1a60c178bf2ffa7463927c5d5de4d0\n"
    },
    {
      "commit": "f4b94427072a42ee6814aa6e1abc04ced5235355",
      "tree": "c50d0748fdcc78d53c7cab5bdd9555a922c6cc73",
      "parents": [
        "3bdc662e713289655c744c7ba3d3e5316b276c45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 05 00:10:09 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 05 00:10:09 2016 +0000"
      },
      "message": "Set the root table size when allocating.\n\nIn order to deallocate it at any point.\n\ntest: ART_TEST_JIT\u003dtrue m test-art-host-run-test-jit\nChange-Id: I36574fd1a34c9d67800a164fa801db7a17c827bf\n"
    },
    {
      "commit": "063fc772b5b8aed7d769cd7cccb6ddc7619326ee",
      "tree": "bc165781989087a998721991504e589a7d5b0926",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 02 11:02:54 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 11:15:47 2016 -0800"
      },
      "message": "Class Hierarchy Analysis (CHA)\n\nThe class linker now tracks whether a method has a single implementation\nand if so, the JIT compiler will try to devirtualize a virtual call for\nthe method into a direct call. If the single-implementation assumption\nis violated due to additional class linking, compiled code that makes the\nassumption is invalidated. Deoptimization is triggered for compiled code\nlive on stack. Instead of patching return pc\u0027s on stack, a CHA guard is\nadded which checks a hidden should_deoptimize flag for deoptimization.\nThis approach limits the number of deoptimization points.\n\nThis CL does not devirtualize abstract/interface method invocation.\n\nSlides on CHA:\nhttps://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp\u003dsharing\n\nChange-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4\nTest: ART_TEST_JIT\u003dtrue m test-art-host/target-run-test test-art-host-gtest\n"
    },
    {
      "commit": "41fba6aefbbd42a66b24582da7304e96b52bbab4",
      "tree": "574ddca8e631cb14d18d06846b54c8f4843f0883",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 28 11:53:33 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 30 10:34:27 2016 -0800"
      },
      "message": "Change Dex2oatLayoutTest to generate profile itself.\n\nChanged from a pre-generated base64 profile. This makes the test work\neven if the dex file differs due to Jack changes.\n\nBug: 33091768\nTest: mm test-art-host-gtest-dex2oat_test\n\nChange-Id: I22b8c20ae1ab57efe66684ba38f5c128e6c089fd\n"
    },
    {
      "commit": "b84defb1b09803d5a47035e8010ac43984da1d4c",
      "tree": "081b63ee8a4ce0f06a208e269a4076331d0d6fce",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 16:02:16 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 16:02:16 2016 +0000"
      },
      "message": "Do not call IsMarked on null.\n\nThe concurrent collector checks it.\n\nTest: ART_TEST_JIT\u003dtrue test-art-host-run-test-jit\nChange-Id: I02c2462ce1d8f3092f0b2f52f8b6dede8ff4a339\n"
    },
    {
      "commit": "c9e2fc27c57d4c007d26081a8e60b244ecba8665",
      "tree": "cd59bdb099bf2342f4400c37cfbf6ea827a56632",
      "parents": [
        "9ebca690fdfb36fe1a689fd32c3d05d999497768",
        "e51ca8bfa8a193b64901ad214842f213adca92eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\""
    },
    {
      "commit": "e51ca8bfa8a193b64901ad214842f213adca92eb",
      "tree": "b07b2534edc592d68b5461a3bdb8a31241892d54",
      "parents": [
        "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:49:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:05:51 2016 +0000"
      },
      "message": "Move inline caches GC handling in JitCodeCache.\n\nMake the classes they hold weak references and visit\nthem during SweepJitRoots.\n\nThis fixes the newly introduced deadlock:\n\nThread1:\n1) Lock JitCodeCache lock to create Profiling info for\n  ArtMethod m.\n2) m is a copied method, we need to track the actual holder,\n   needing to decode a weak reference.\n3) Weak references are not accessible due to GC.\n\nGC Thread:\n- Disallow weak reference access.\n- Wait for checkpoint.\n\nThread2:\n- Try to lock JitCodeCache lock\n- Deadlock, as Thread1 owns the JitCodeCache lock.\n\nTest: test-art-host\nbug: 31289185\nbug: 33198826\n\nChange-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8\n"
    },
    {
      "commit": "b18a669259aa6ba08d9ca01b5b32c1aa0417138b",
      "tree": "c8f5260d9b68614f85b2947d81122ffcaf99fdec",
      "parents": [
        "35b6546b0a4fe423ed6f27d8c5b709d5191e99ef"
      ],
      "author": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Nov 17 10:51:58 2016 +0300"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 28 11:38:03 2016 +0000"
      },
      "message": "Cache flush/invalidate needs RWX permission\n\nWhen generating JIT code, perform cache maintenance operations before\nremoving page write permissions. Errata on some cores require data\nflush operations to be followed by data invalidate operations\nrequiring write permission.\n\nTest: ART_TEST_JIT\u003dtrue test-art-target on an arm64 device.\nbug: 27265969\n\nChange-Id: I70cbb0dc2ea37e42f2011d23333e386ae3f639c7\n"
    },
    {
      "commit": "7a704bea1b1ff1e7deb903513997e0f35040287b",
      "tree": "e94262da7f17cc3ffd4e7a8df337cbd96f62da0b",
      "parents": [
        "c394d0558de9afff6ab8b87ae9706497e01f37ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 13:24:40 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 22 13:30:47 2016 -0800"
      },
      "message": "Always fill in root table length\n\nOtherwise, there may be DCHECK failure in JitCodeCache::ClearData.\nFixes gcstress JIT tests.\n\nTest: test/run-test --host --relocate --prebuild  --64 --jit --gcstress --dev 021-string2\n\nChange-Id: I757ccd1e5a015c5e686254417a2a3f68b650da1c\n"
    },
    {
      "commit": "f46501c6ad11025843682267c10f221323a206b1",
      "tree": "a5b77de81f5ab31e66082b02b225e7fe56877f98",
      "parents": [
        "71d15102b52af67e8fe1193192aa2b4cd1956ae0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 13:45:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:21:31 2016 +0000"
      },
      "message": "Clear the right data pointer.\n\nInternally, stack_map_data is an offset of the roots_data allocation.\nPass both to the ClearData method, which will use the right pointer\nto deallocate.\n\nTest: test-art-host in debug mode\nChange-Id: Ibfe38e7f1853870076048427f2efe7121c11c136\n"
    },
    {
      "commit": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "dac7ad17c78387d15d7aefae0f852dddf5f37e34",
      "tree": "603b3ca74ba9144d217497417314fe863e2201ef",
      "parents": [
        "af524438b8a76264a23ec2d748e11eeded02abc7",
        "132d8363bf8cb043d910836672192ec8c36649b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:14:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 10:14:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\""
    },
    {
      "commit": "320ba91911c840528893e07b0af43d317cd4c9aa",
      "tree": "486ea2599d6f141d1887bdb55b2dd235d589b7f7",
      "parents": [
        "9fd470f87342dfe974c8ec8c74239a547e768650"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:39:45 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:42:58 2016 -0800"
      },
      "message": "ART: Add debug exception check to JIT\n\nCheck for a pending exception after JIT compilation finishes.\n\nTest: m ART_TEST_JIT\u003dtrue test-art-host\nChange-Id: I27defaa733f360cb1dbabede62d4908777bc5d2b\n"
    },
    {
      "commit": "132d8363bf8cb043d910836672192ec8c36649b6",
      "tree": "42ee8b08f0323e9762675333b50a4c218ecdefc7",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 09:19:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 14:31:30 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\n\nTest: 626-set-resolved-string, test-art-host, test-art-target\nTest: run-libcore-tests.sh\nTest: phone boots and runs\n\nThis reverts commit 3395fbc20bcd20948bec8958db91b304c17cacd8.\n\nChange-Id: I104b73d093e3eb6a271d564cfdb9ab09c1c8cf24\n"
    },
    {
      "commit": "137b07593aedfad193a77f3787ecf5197008c5da",
      "tree": "51e872c3c3d3072ba0032e35fe155c01baba10db",
      "parents": [
        "de19542bdd8fb252d316c5064c8fc224c2fe52aa",
        "54b5855192abee8cb612fce3c34b7562ddf42522"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 17 21:31:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 17 21:31:01 2016 +0000"
      },
      "message": "Merge \"Change offline profile to store type_idx of classes.\""
    },
    {
      "commit": "54b5855192abee8cb612fce3c34b7562ddf42522",
      "tree": "0bba557936990568075507c5ba86efec959c752b",
      "parents": [
        "3825da56fb16cb8c8128dfad3f65ce392ebf0642"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 16 15:15:04 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 17 11:00:37 2016 -0800"
      },
      "message": "Change offline profile to store type_idx of classes.\n\nChanged from storing class_def_idx to type_idx. Allows dexlayout to move\nclass defs without affecting the profile.\n\nTest: mm test-art-host\n\nChange-Id: I8a040adf0f5f47a1592e18aeb55edde01cb3e1ed\n"
    },
    {
      "commit": "f149b3fc6fd315d34244bce709898fdbbddc246f",
      "tree": "34cc0b2f23865db2c065a9e19cf624290e6f2250",
      "parents": [
        "6f3a70f316f2f3dcde5b3bde5fb258c556c46da6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 16 14:58:24 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 08:33:16 2016 -0800"
      },
      "message": "ART: Add ScopedJitSuspend\n\nAdd a helper to suspend the JIT in a scope. This will\nwait for the JIT to quiesce, finishing already running\ncompile jobs. Note that the queue will not be drained,\njobs not picked up by the pool, yet, will remain in\nthe queue.\n\nBug: 31385354\nTest: m test-art-host\nChange-Id: I576e7926423f19a8f382be1263838cd924955f1c\n"
    },
    {
      "commit": "6beced4c017826f7c449f12fac7fa42403657f2b",
      "tree": "f53614eeeaa92be9a7398e262d9440f59e3384a5",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 15:51:31 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 10:41:40 2016 -0800"
      },
      "message": "Change iftable to never be null\n\nSimplifies code generation by removing a null check. The null case\nis rare.\n\nRitzperf code size: 13107624 -\u003e 13095336\n\nAlso addressed comments from previous CL.\n\nBug: 32577579\n\nTest: test-art-host, run ritzperf both with CC\n\nChange-Id: I2b31e800867112869d7f0643e16c08826296979e\n"
    },
    {
      "commit": "81cae78d1853893ff9c3ecea4b5100002a538eb7",
      "tree": "d32c8f7e57449381511ffb206f4a335c157ae597",
      "parents": [
        "e8fc2cedb85ce4a6747cddbbf4cf33288e0ba5b9",
        "3395fbc20bcd20948bec8958db91b304c17cacd8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\""
    },
    {
      "commit": "3395fbc20bcd20948bec8958db91b304c17cacd8",
      "tree": "e0d00b412961e2aaa0dff91317a9f4168189e5fb",
      "parents": [
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT root tables.\"\"\"\n\nlibcore failures:\ndalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string !\u003d nullptr\n\nThis reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.\n\nChange-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d\n"
    },
    {
      "commit": "4b050e817b929169e57661376793cff4c3ef421a",
      "tree": "56ee6c72dd7ed64fe4bcf701a0733c50b0289bc9",
      "parents": [
        "7fad15efba22817e9abb0f35b15aa2dd4715884c",
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 09:13:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 09:13:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT root tables.\"\"\""
    },
    {
      "commit": "7b8a265fc316be562176a0fb27ecf943f43a6229",
      "tree": "42d72a282bcd0c91384a9cbc5bd817ed9a752416",
      "parents": [
        "5a92027262a216614c82ec841adcfc6b4627d07b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 11 17:11:25 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 11 17:11:25 2016 -0800"
      },
      "message": "ART: Fix alloc-dealloc mismatch\n\nMark type as array.\n\nBug: 31098551\nTest: m test-art-host\nChange-Id: Ia27a997e838a408cc68f0d9fe58734155e709e85\n"
    },
    {
      "commit": "75afcdd3503a8a8518e5b23d21b6e73306ce39ce",
      "tree": "b49afc4772fa72319475f96ed66d744bb03e803c",
      "parents": [
        "ee48b0f11df812d98de5c989e1f6d95a21515564"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 10:38:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 13:18:24 2016 +0000"
      },
      "message": "Revert \"Revert \"JIT root tables.\"\"\n\nAlso  contains Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nThis reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nTest: ART_USE_READ_BARRIER\u003dtrue/false test-art-host test-art-target\n\nChange-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3\n"
    },
    {
      "commit": "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035",
      "tree": "1220262d0ed22d91777c68a8a568348cddf820cb",
      "parents": [
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "message": "Revert \"JIT root tables.\"\n\nMay be the offender for jit-gcstress failure of 902.\n\nThis reverts commit ac3ebc3150760425ed00abd56da48f9a6e0666bc.\n\nChange-Id: I9ea6c9236fd1729fed7d1868dd8a111172932308\n"
    },
    {
      "commit": "ac3ebc3150760425ed00abd56da48f9a6e0666bc",
      "tree": "3c5c923bb00a898e035c0e7c4b8a6a684a578419",
      "parents": [
        "76ad2405b40547e0ab4fc401fb8303189ff783eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:13:50 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 08 17:21:30 2016 +0000"
      },
      "message": "JIT root tables.\n\nImplement root tables for the JIT. Each JIT compiled method\ngets a table allocated before the stack maps.\n\nThe table gets visited through Runtime::SweepSystemWeaks.\n\nImplement String roots for x86_64 as an example.\n\nTest: test-art-host test-art-target\n\nChange-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2\n"
    },
    {
      "commit": "ef41db7a3f322a1feb305fdb457410c4cea94d00",
      "tree": "c03152c091ef62ab70f5be0a2fe3a965b189132c",
      "parents": [
        "1458e0c09fe0a3b9fa5fd7beb9b6077d1fc46b1d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 25 15:08:01 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 15:25:40 2016 -0700"
      },
      "message": "Move interpreter to ObjPtr\n\nMoved most of interpreter, interpreter_common,\ninterpreter_switch_impl, and some of mterp to ObjPtr.\n\nBug: 31113334\n\nTest: test-art-host ART_TEST_INTERPRETER\u003dtrue\nTest: art/tools/run-libcore-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I0935d18287e1332205c17c5a018aa167788ab897\n"
    },
    {
      "commit": "28357fab628bd9b91749988b554977398caf9963",
      "tree": "957fac3c1003713c349e0e216762836138c596a7",
      "parents": [
        "c89f9776a107ca20d0146c16fa881db91c4f8266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 18 16:27:40 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 19 10:04:37 2016 -0700"
      },
      "message": "Move most of class linker to ObjPtr\n\nReturn values are still mirror pointer. Fix some failing asserts in\ncompiler driver and tests.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4450bf9dfb2541749496b8388616e8aae8488919\n"
    },
    {
      "commit": "709b070044354d9f47641f273edacaeeb0240ab7",
      "tree": "3a8ac051d7c35076303984d0d892cdd396b60427",
      "parents": [
        "1a4de6a2453a3ad0310aca1a44e7e2d3b6f53bc1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 13 09:12:37 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 18 14:10:04 2016 -0700"
      },
      "message": "Remove mirror:: and ArtMethod deps in utils.{h,cc}\n\nThe latest chapter in the ongoing saga of attempting to dump a DEX\nfile without having to start a whole runtime instance.  This episode\nfinds us removing references to ArtMethod/ArtField/mirror.\n\nOne aspect of this change that I would like to call out specfically\nis that the utils versions of the \"Pretty*\" functions all were written\nto accept nullptr as an argument.  I have split these functions up as\nfollows:\n1) an instance method, such as PrettyClass that obviously requires\nthis !\u003d nullptr.\n2) a static method, that behaves the same way as the util method, but\ncalls the instance method if p !\u003d nullptr.\nThis requires using a full class qualifier for the static methods,\nwhich isn\u0027t exactly beautiful.  I have tried to remove as many cases\nas possible where it was clear p !\u003d nullptr.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I21adee3614aa697aa580cd1b86b72d9206e1cb24\n"
    },
    {
      "commit": "c4f3925490a73da8dc74884a1deb965d4ecaf14e",
      "tree": "7fe566827f8ab903af1acb5697c86a6efe3187b3",
      "parents": [
        "18f7de841fee3ca6f0c04e7caa57c3ce76b36231"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 18:32:08 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 13:55:58 2016 -0700"
      },
      "message": "Move remaining jobject related functions to use ObjPtr\n\nAlso added ObjPtr::DownCast.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I59c253211dc435579ffdfd49f856861ab13d262c\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59",
      "tree": "2ce1b047f54bfb4287483de8eaf79cd12f6058b6",
      "parents": [
        "79f6d706185714dccf80aca20d9f3261337473ae",
        "268764da8022cafa5661c5b514eaa343c5257e57"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "message": "Merge \"Make ScopedAssertNoThreadSuspension no overhead for non-debug\""
    },
    {
      "commit": "9323e6e44060545d6c4f925139572868f65b7fe3",
      "tree": "65f3f380605d75f34d49aec49fca494bec26ef5b",
      "parents": [
        "58735fbfbb2da0c0a19b3239da07c2353c40767d"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Sep 13 08:58:35 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Sep 14 08:01:39 2016 -0700"
      },
      "message": "Separate annotations from dexfile reading.\n\nBug: 22322814\nChange-Id: I867d66da407dd80394a10d19903ebbc1ec3986ff\nTest: test-art\n"
    },
    {
      "commit": "268764da8022cafa5661c5b514eaa343c5257e57",
      "tree": "7c4b46847a6dcfac7a1492edd79b434fb1a0d6ea",
      "parents": [
        "f9decf915f6fa5b33fceba7c10c119e4cad481e5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 12:09:38 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 15:18:29 2016 -0700"
      },
      "message": "Make ScopedAssertNoThreadSuspension no overhead for non-debug\n\nPreviously it required Thread::Current() which may not be free.\nThe plan is to add a lot more ScopedAssertNoThreadSuspension in\nthe codebase.\n\nAlso cleaned up callers.\n\nBug: 31458474\nChange-Id: I5a1621a5435476504d22266cc01a9bf26aab7568\n"
    },
    {
      "commit": "3a21e386fa55a8b86dffa5250985b263fcfd2155",
      "tree": "ce6fecaae067f86e094ae7844ee5fa4ae8ee63e8",
      "parents": [
        "f94a4cf18946bda4a4f19378436d2bf131a492ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 12:38:38 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 15:15:28 2016 +0100"
      },
      "message": "Clean up some includes.\n\nRemove some unnecessary includes from header files, replace\nothers with forward references and add includes to source\nfiles as needed. Reduce dependency on stack.h by pulling\nStackReference\u003c\u003e out to its own file.\n\nTest: m test-art-host\nChange-Id: I0fb182145e328870cbd918b0ef6ae2950223c1b2\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "9fe11b1723d2e33f64adf5be3fd81d0a4daf86bb",
      "tree": "a569c19ca5f1ff96a605181c222dd0fb871317fd",
      "parents": [
        "fe3313d2c18e31d07823f5f66b9c2fa498086890",
        "f2b1529b0988a1722b718fee6911e0030e95c9b6"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Wed Aug 10 16:11:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 16:11:32 2016 +0000"
      },
      "message": "Merge \"ART: Fix JIT profile saver\"\nam: f2b1529b09\n\nChange-Id: Iadbd6f1101de48515396b26cb0bafc2087dbd631\n"
    },
    {
      "commit": "f2b1529b0988a1722b718fee6911e0030e95c9b6",
      "tree": "48653046837d7ac34d707fb8eea37eb79fb3a889",
      "parents": [
        "066187de25e3fd2ae86bad812f514e16793caae7",
        "87de9cfefddfeef9b139e90adf372e3566be3afc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 10 16:06:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 10 16:06:07 2016 +0000"
      },
      "message": "Merge \"ART: Fix JIT profile saver\""
    },
    {
      "commit": "87de9cfefddfeef9b139e90adf372e3566be3afc",
      "tree": "b9d95f661d80baee8b9395a7d7c38f7359a23320",
      "parents": [
        "ba65cc4a71273904294245cb37ce70e5bce797e3"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Mon Aug 01 17:47:04 2016 +0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Aug 10 14:47:58 2016 +0000"
      },
      "message": "ART: Fix JIT profile saver\n\nWe miss the case when jit activity notification count exceeds\nthe threshold. Fix it.\n\nBug: 30583550\nTest: manual test in master\n\nChange-Id: Ib10a34d3c2f5d3cf674b1c4d7a3c1204784865d3\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "c8e6f7a739a843ae703d561b4ae0d22d10c76ee9",
      "tree": "0db2b68f28d7b027d55dbe00e09be0e5e61a280a",
      "parents": [
        "6807da04a85a9cce93d5e427a72bf63f48f093bf",
        "0ed44f95955f48b21763dd32cbd510886e9bb2e1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 19:38:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 09 19:38:55 2016 +0000"
      },
      "message": "Merge \"Card mark holding class instead of declaring class\"\nam: 0ed44f9595\n\nChange-Id: I6b4eeb9b956a6b5def8b28366822af4b0d44c686\n"
    },
    {
      "commit": "65975776f807d55c83af6cca1e447f8daa794413",
      "tree": "3b30b9a6ba00e72df89f59387c383ef747772025",
      "parents": [
        "3f3201a89ec19257b3bc93c25b20abdcfe61f3e4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 05 10:46:36 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 10:45:18 2016 -0700"
      },
      "message": "Card mark holding class instead of declaring class\n\nFor profiling info, we need to mark the card of the holding class\ninstead of declaring class. This is required for GC correctness since\nthe GC relies on the card table to track cross space references.\n\nTest: test-art-host ART_TEST_JIT\u003dtrue\n\nBug: 30655270\n\nChange-Id: Ia4690219ded0df38032b644440273e06bc303956\n"
    },
    {
      "commit": "15964a116aa532adb018de952bf7316b0407f25d",
      "tree": "452457cf12572b99f3d7a2ef36c59789a1b0395b",
      "parents": [
        "b9341d286f210b27b172a3ccba843328365e1012",
        "ba65cc4a71273904294245cb37ce70e5bce797e3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 02 03:55:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 02 03:55:47 2016 +0000"
      },
      "message": "Merge \"ART: Convert pointer size to enum\"\nam: ba65cc4a71\n\nChange-Id: I223a62cf0e5b58c64400aff22109cad62ab278a0\n"
    },
    {
      "commit": "ba65cc4a71273904294245cb37ce70e5bce797e3",
      "tree": "d53a7a816ec4c8e5bdbf80729ac945787b27bf2c",
      "parents": [
        "1a827a05afbffd5bee241f245f9aa3c40b4dbae4",
        "542451cc546779f5c67840e105c51205a1b0a8fd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 02 03:47:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 02 03:47:35 2016 +0000"
      },
      "message": "Merge \"ART: Convert pointer size to enum\""
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "36ecf8696fe640ac695a7657b164750d1cadb017",
      "tree": "5d7820443e960c415436d12cc728a76219461c3e",
      "parents": [
        "bb0cec991adb84a23ad610dcef7e7cb777ead16d",
        "1a7c33704ae205cdfa65c9e9d3f0d0e637bb6331"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 01 19:50:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 01 19:50:40 2016 +0000"
      },
      "message": "Merge \\\"Put the deletion of profiling info under a GC critical section.\\\"\nam: 1a7c33704a\n\nChange-Id: I4952fd9f60b7b5c85b2acba7d808f008601029d0\n"
    },
    {
      "commit": "cf48fa030780c3185f225d558b704c396f7713cc",
      "tree": "5905f8636ede57661450c057d56bb912bb1a532c",
      "parents": [
        "3d733104c99ce02f5fd042d69c1cecf295208872"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jul 30 22:49:11 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jul 30 22:49:11 2016 +0100"
      },
      "message": "Put the deletion of profiling info under a GC critical section.\n\nOtherwise the GC could see dangling pointers.\n\nbug:30033802\nChange-Id: I839c4f6e537aba98769e99e4d75ff869c9ff13eb\n"
    },
    {
      "commit": "d4a452714e893765851d88535f6d29cc39af3d27",
      "tree": "1a6814e5b823686e68e084953c1057fd94ec215b",
      "parents": [
        "e42a192af41bc3df1c3e68c83342974867a4ce1c",
        "9755c262df1be7f5d5b98d038c8fd3734e974f9d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 27 18:47:58 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 27 18:47:58 2016 +0000"
      },
      "message": "Merge \\\"Fix profiling output to properly display class info.\\\"\nam: 9755c262df\n\nChange-Id: I417529769b10bd7693461c90f0306881158332a6\n"
    },
    {
      "commit": "58d40f3a7245e65d57a5daf6bf27c3b209260044",
      "tree": "3132e2e1e5b1f1af558652d9b39eeb6c994ec256",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 27 10:35:03 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 27 10:35:03 2016 -0700"
      },
      "message": "Fix profiling output to properly display class info.\n\nThe profiler stores class def indexes, not type ids.\n\nChange-Id: Ieec9374a2ba381387ed444f376922478183145f8\n"
    },
    {
      "commit": "38a445a6edd82176d1ecc5249837d646d04a771b",
      "tree": "532ce3b240ffb967427088ee9f1537eef5316f2e",
      "parents": [
        "c053477c27fe26ecc43de0f5f085c228529de988",
        "04a23d7e10fa42c5047b6f08048dbaacd1e74fcd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 29 15:34:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 29 15:34:06 2016 +0000"
      },
      "message": "Merge \\\"Clean up profiler options\\\"\nam: 04a23d7e10\n\nChange-Id: Ia1e7da49795b9e12819c5193de761b8b6ed63ce4\n"
    },
    {
      "commit": "04a23d7e10fa42c5047b6f08048dbaacd1e74fcd",
      "tree": "5da803ece15b36a015ee23b07b6eb8701ac175e3",
      "parents": [
        "3e6bc4c76acb7be02165553314150b4728135f0e",
        "138dbff9246c89ac9fbe0b086b54fdab3f4451fb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 29 15:28:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 29 15:28:51 2016 +0000"
      },
      "message": "Merge \"Clean up profiler options\""
    },
    {
      "commit": "138dbff9246c89ac9fbe0b086b54fdab3f4451fb",
      "tree": "07afe983b3892505d4a5bdd3b3bdd5fe126e76c7",
      "parents": [
        "be84b59e802d9176a9b60b040e0be6bda54e958a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 28 19:36:58 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jun 29 14:31:30 2016 +0100"
      },
      "message": "Clean up profiler options\n\n- remove obsolete options\n- using ProfileSaverOptions instead of hard-coded values in the profile\nsaver\n\nBug: 24698874\nChange-Id: I4ff535d29a644d1bd5509844f89615b70a723749\nTest: cmdline_parser_test, gtest and run-tests pass.\n"
    },
    {
      "commit": "b698604156ded23bf7381250bcd6f3a53502845e",
      "tree": "4058105380656b8619e71e59579eca9d914cdb8f",
      "parents": [
        "b6aff43a19634164960e6a25e6ef151dcae81964",
        "4dd9d82d6c1260b3da908a0d1a22b7d209b87496"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 28 17:26:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 28 17:26:48 2016 +0000"
      },
      "message": "Merge \\\"Add ability to generate a random test profile\\\"\nam: 4dd9d82d6c\n\nChange-Id: I4b2ceb684ad2fcea89b8b8212ae2064cf8070d30\n"
    },
    {
      "commit": "b9440ff8a5001bb2d75c3ad79d85c83d0a958a8b",
      "tree": "1d260df16717892c7ae286053b56e1c984bb3e0d",
      "parents": [
        "e3250eaf2ed52b81a0a45e8bea73506d011542fd",
        "ece0c2e4dedd9122903bf0fc1d09f060309f8ead"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 28 13:32:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 28 13:32:10 2016 +0000"
      },
      "message": "Merge \\\"Add debug option to ignore checksum checks in profiles.\\\"\nam: ece0c2e4de\n\nChange-Id: I9f0963f97ddcec78a8fa3658fe3197342a6236f2\n"
    }
  ],
  "next": "7bcdb53803d8e276d374fc7bb74d6dd893b39345"
}
