)]}'
{
  "log": [
    {
      "commit": "fa458ac21af98b3bdde2c62ed86b9c192b994372",
      "tree": "5fa7543c9fd5edd0e950b19a70412002e10bba47",
      "parents": [
        "99d91d18f9f73427eced2f22642520d50c3c3b83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 14:08:07 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 19 16:08:34 2020 +0000"
      },
      "message": "Allow late lookup for @CriticalNative methods.\n\nTest: Add and enable tests in 178-app-image-native-method\nTest: Add and enable tests in jni_compiler_test\nTest: Manually step through the new stub in GDB and check\n      that backtrace works at various points.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 112189621\nChange-Id: If094e5062acbb99eefa88f2afb4815f93730cb82\n"
    },
    {
      "commit": "7c2f69e42e5347820ada07c88de5a79f355c61be",
      "tree": "0d9e2ab31ca9fcb716d6c3283bd6a83f32dc39d5",
      "parents": [
        "7eca3779b7e3652565265b424a85ae329887c32d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jan 15 15:43:32 2020 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Feb 06 22:56:04 2020 +0000"
      },
      "message": "apex_available becomes more correct\n\nPreviously, Soong didn\u0027t follow the static dependencies when checking\napex_available. As a result, a module that is not available to an APEX\n(or to the platform) was able to be statically linked from the APEX (or\nthe platform).\n\nAs the Soong bug is fixed, unchecked dependencies have revealed and this\nchange reflects the finding.\n\nExempt-From-Owner-Approval: cherry-pick from internal\n\nBug: 147671264\nTest: m\nMerged-In: I6d9dbe31a8d46d26a4925462edd1984281bd203a\n(cherry picked from commit a24189de28d3dc078ffe3e694816859bce9ce730)\nChange-Id: I6d9dbe31a8d46d26a4925462edd1984281bd203a\n"
    },
    {
      "commit": "066dd902930582873e7d9372ac0c8483ac700cb9",
      "tree": "f3a0b47419fea78001faea017ba04e630e82fd2e",
      "parents": [
        "fb537087516e34e92e3c030ef2f7fc8b233d7a47"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 02:11:59 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 01:17:37 2019 +0000"
      },
      "message": "Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR\n\nReason for revert: relanding with fix\nReverted Changes:\nIc4119368c:Revert submission 1191937-art_apex_available\nIa084976bb:Revert submission 1191937-art_apex_available\nIada86226d:Revert submission 1191937-art_apex_available\nIc76735eac:Revert submission 1191937-art_apex_available\nI1eb30e355:Revert submission 1191937-art_apex_available\nIcaf95d260:Revert submission 1191937-art_apex_available\nIe8bace4be:Revert submission 1191937-art_apex_available\nI8961702cf:Revert submission 1191937-art_apex_available\nI39316f9ef:Revert submission 1191937-art_apex_available\nI522a7e83b:Revert submission 1191937-art_apex_available\nI8b9424976:Revert submission 1191937-art_apex_available\nI48b998629:Revert submission 1191937-art_apex_available\n\nChange-Id: I7a101d39ff63c153675e4e741f9de1a15a778d33\n"
    },
    {
      "commit": "80599a28d1c865de7644a87111f49ee3b30f7c41",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "1e88f980a85056165312331746862dc48186bc54"
      ],
      "author": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "committer": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "message": "Revert submission 1191937-art_apex_available\n\nOriginal Commit Message:\n\"\"\"\nRename modules that are APEX-only\n\nThe renamed modules are only available for APEXes, but not for the\nplatform. Use the \u003cmodule_name\u003e.\u003capex_name\u003e syntax to correctly install\nthe APEX variant of the modules.\n\"\"\"\n\nReason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.\n\nReverted Changes:\nI190ce2d10:Use apex_available property\nI990e0a67e:Use apex_available property\nI0d1295683:Revert \"Avoid duplicated classes for boot dex jars...\nI5fb725403:Find the jar libraries in APEX from the correct pa...\nI322b1efcc:Rename modules that are APEX-only\nIfa2bd0f8f:Use apex_available property\nIac6533177:Use apex_available property\nIe999602c6:Use apex_available property\nI2a3d73397:Use apex_available property\nIc91bcbb9a:Use apex_available property\nIa6c324eed:Use apex_available property\nI964d0125c:Use apex_available property\n\nChange-Id: I1eb30e355cfce316b94cde0dd176002af8d222bb\n"
    },
    {
      "commit": "1e88f980a85056165312331746862dc48186bc54",
      "tree": "0cbeeaf951d6bd637a46f4f51faf80587f3ecc2b",
      "parents": [
        "c9af14e93f6a2691bf8231752d8d7c3e41b14c76"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 02 13:44:06 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 00:21:38 2019 +0000"
      },
      "message": "Use apex_available property\n\nUse apex_available property to prevent modules that are only for the ART\napex from being used outside of the APEX.\n\nThis change also fixes the reference to\n$(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so to $(lib).com.android.art.debug\nphony module since the former is never installed to the system partition\ndue to their \u0027apex_available\u0027 settings.\n\nBug: 128708192\nBug: 133140750\nTest: m\nChange-Id: I990e0a67e066d9b1dc221748422a2f44449258da\n"
    },
    {
      "commit": "00391824f4ee89f9fbed178a1ee32bc29fa77b3b",
      "tree": "aea6bc5e49801c5b4816257ab16a97181ef0d911",
      "parents": [
        "001e5b33ba7065dde0b85450830b605733ae1685"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 10 10:17:23 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 06:50:39 2019 +0000"
      },
      "message": "Add an implementation of Nterp for x64.\n\nAnd enable it on x64 when runtime and ArtMethod requirements are met\n(see nterp.cc).\n\nTest: test.py\nBug: 112676029\nChange-Id: I772cd20a20fdc0ff99529df7495801d773091584\n"
    },
    {
      "commit": "57cacb720e6f995aa1a42df6e2e6470a9ec57261",
      "tree": "bb73a113c94bc397cd7c99a4c64e033bf29b9803",
      "parents": [
        "013d1ee96b928f3bda9031e94d4a69f827133ce6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Dec 08 22:07:08 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 09:48:00 2019 +0000"
      },
      "message": "Refactor OSR related code to prepare for \"true\" OSR.\n\n- Make the compiler restore all callee-save registers.\n- Make the compiler return any value in a core register: this simplifies\n  the current stub, and will also avoid having to look at the return\n  type (and reading the shorty) when returning to an nterp frame.\n- Add OsrData and offsets of its members to be used by nterp.\n\nTest: test.py\nBug: 27094810\nChange-Id: Ifa4f4877ab8b1f0c6a96feccea30c909942eb2fa\n"
    },
    {
      "commit": "a00b54b74bee06c006b8bebfbef85e2801de293c",
      "tree": "6edb2a96c1f89ae913e6b5f190b117cb290239e8",
      "parents": [
        "e571a283b73fb4621c401811f523503b3266564b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 14:36:42 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 12:04:36 2019 +0000"
      },
      "message": "Helpers and refactorings to prepare for interpreter optimizations (x64)\n\n- Add data structure offsets that will be used in assembly code.\n- Be explicit about a stack overflow in a fault handler.\n- Move assembly helper code in asm_support so interpreter can use it.\n- Support putting literals in InterpreterCache.\n- Fix artHandleFillArrayDataFromCode for x64.\n\nBug: 119800099\nTest: test.py\nChange-Id: I2729f87fe5d09c04ae2e7081636f0cd89ac14c21\n"
    },
    {
      "commit": "08d0984bfeaff1a1bc2db2d51ecf45f2867b3bc4",
      "tree": "3c8c47aae746f4057d541448f873d6e287a092d6",
      "parents": [
        "2d8b7f4ef7a305b98dd54d259e0c2b9f6aed4fd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 02 12:38:49 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 02 15:44:20 2019 +0000"
      },
      "message": "Allow late lookup for @FastNative methods.\n\nAvoid failing a runtime state assertion.\n\nTest: Enable tests in 178-app-image-native-method\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 112189621\nChange-Id: I3eb5c9fd239743732866e8ea0863a84bf85f7b20\n"
    },
    {
      "commit": "e2a3aa988630b3c2952ac44943f03dde60454195",
      "tree": "acee7012af6e2b161c91e6cd8b7b4d12eb5aa927",
      "parents": [
        "a2c4d61e482a15974e3e220bcd62a64043ee536f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 25 17:52:58 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 27 14:04:43 2019 +0000"
      },
      "message": "Baseline JIT: update inline caches in compiled code.\n\nIn trying to remove profiling from interpreter, to speed up\ninterpreter performance.\n\nBug: 119800099\nTest: test.py --baseline\nChange-Id: Ica1fa41a889b31262d9f5691b30a31fbcec01b34\n"
    },
    {
      "commit": "221dfa62884a997c744eeb9a37326c5410a6d8e4",
      "tree": "bde7c11c4a52894ac554e88861db8a99f6210347",
      "parents": [
        "3e29e19c9ae2c1785cfff17ad67d4bde8abda2a5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 03 16:03:56 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 04 17:37:37 2019 +0000"
      },
      "message": "Explicitly disable cpp-define-generator for Darwin.\n\nThis is (one of the many things) currently breaking the Mac build.\n\nTest: builds on my puny Mac\nChange-Id: Ifab20b357573917fb4929cf41052b2ed544476fd\n"
    },
    {
      "commit": "d5ec2a1321106a4bc56cba197dfbc538c09b4ae9",
      "tree": "158310581c8343c5d8840b2b6febbb17bde01ad2",
      "parents": [
        "fa595885339140c3507f26d93cdc6b99081e23c5"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Aug 08 15:37:06 2019 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Aug 09 15:45:21 2019 +0000"
      },
      "message": "Make the $/# in front of constants optional\n\nBug: http://b/117842681\nBug: https://github.com/android-ndk/ndk/issues/1036\n\nAfter change https://reviews.llvm.org/D65550, Clang stopped emitting \u0027#\u0027\nbefore constants in inline assembly.  To accommodate this change, mark\nthe $/# before constants as optional in make_header.py\n\nTest: Build with old and new compilers\nChange-Id: Idb056c99a2bfc4d14e4e30d7dc1d0740ca4f9b60\n"
    },
    {
      "commit": "eafeeb281349ff6d035888fbc4b05aed87529c72",
      "tree": "bdb88ad9e819f41791cde63b92362446a130fef6",
      "parents": [
        "de0ccffc5e8b22f86730b125cd3cfd825a576ba7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jul 19 10:22:32 2019 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jul 19 18:13:40 2019 +0000"
      },
      "message": "Replace use of include_dirs with header_libs on asm_defines.s\n\nDepends on change to add support for header_libs to cc_object.\n\nThis change:\n* Removes unused art/libartbase and system/core/base/include from\n  asm_defines.s.\n* Replaces include_dirs with header_libs.\n\nBug: 35624006\nTest: m cpp-define-generator-asm-support - compare output before and after change\nChange-Id: I1475193e057abe2a6e7a320fcc989fa37d37792f\n"
    },
    {
      "commit": "e81f10a3f672a8bcc421cab812e6435749181566",
      "tree": "076df5318e4bfdb6148fd6bb0faf5ea8de1d3336",
      "parents": [
        "9690542a9ed7740110459d3167708e6edc1a2686"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 04 10:00:12 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 00:20:19 2019 +0000"
      },
      "message": "Revert \"Remove ShadowFrame::dex_pc_ (but keep dex_pc_ptr_)\"\n\nThis reverts commit 50bc8fb89c79874e731f245abda3b9e48a541cfe.\n\nReason for revert: Performance regression\n\nChange-Id: Ib39ceb9e1f2753c518dd24fd193a824211fd5795\n"
    },
    {
      "commit": "50bc8fb89c79874e731f245abda3b9e48a541cfe",
      "tree": "c4dd3d8291ceac4b1d9b7dbca9886842c33967f2",
      "parents": [
        "8c344524e5251535e49cbe8e68ab5dc1cd7d1591"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 26 15:05:43 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 03 14:21:47 2019 +0000"
      },
      "message": "Remove ShadowFrame::dex_pc_ (but keep dex_pc_ptr_)\n\nThey store the same information which is redundant and error prone.\n\nTest: ./art/test.py --interpreter\nChange-Id: I379c20973b90645e3c1016c253d9a6db9a2417dc\n"
    },
    {
      "commit": "5a0430d0239481f4efb252d60ec9641703b8d456",
      "tree": "cd7bdb45d94e7af3aa3e1bbb5958f930bcee29f6",
      "parents": [
        "b9b995738c8f53d68446d14553c1befd487877e7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 04 14:33:57 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:20 2019 -0800"
      },
      "message": "ART: Introduce runtime_globals\n\nSplit libartbase\u0027s globals.h into actual globals, and runtime-\ndependent globals which should live in runtime.\n\nBlanket-convert all runtime/ inclusions.\n\nIn future CLs, the number of global constants should be reduced.\nFor example, GC types are only relevant to GC/alloc functionality.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I2d8cd32e0e7ab4084d2f2e96864b5338a78da94e\n"
    },
    {
      "commit": "28f6cff854b61e39f953e69ebf3646ee9826ec82",
      "tree": "a98e2bf1746d93079b7abe54e278ba87f0aef360",
      "parents": [
        "06ef9aa6a562a3a1f7c1f9b91aadda5018f8ba86"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 16 15:07:28 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 22 14:35:07 2018 +0100"
      },
      "message": "Cache the value of MterpShouldSwitchInterpreters()\n\nAdd field to the Thread object which stores the value instead (negated).\nExplicitly update the field when relevant state changes (which is rare).\n\nThis speeds up golem interpreter benchmarks by 3.5%\non average with some benchmarks up to 15% faster.\n\nTest: test.py -b -r --interpreter --host\nChange-Id: If2df0d3bf9e69ab50c30102b2648e997927c34d8\n"
    },
    {
      "commit": "50b47432f8df853b8479179154382ef30bdf30c9",
      "tree": "ec702341b889cc43cc75625ddad8c1bebeff3c2f",
      "parents": [
        "f06ca50f0aff5167f767b09f624c60186290a623"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 18 12:26:34 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 18 12:43:06 2018 +0100"
      },
      "message": "Move cpp-define related static_assert to runtime.\n\nThe runtime is build with both debug and non-debug configs,\nso checking it there covers more cases.\n\nTest: Check this caches cases which previously passed.\nChange-Id: I543547e517b79289438b19ed9e18f5a6d0b74172\n"
    },
    {
      "commit": "776f3f7bfa33e0449e4e2c5535bae1babfdbaf83",
      "tree": "274d20979e48c772327258b7cbeab92b276df84e",
      "parents": [
        "d88f5f7b22571511b93206f02806568648138a35"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 15 18:03:55 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 16 15:13:44 2018 +0100"
      },
      "message": "Remove mterp \"alternate\" opcode handlers.\n\nThey are currently unused and I don\u0027t have plans to use them.\n\nThe alternate table made it possible to enable extra mterp checks.\nHowever, it is possible to move the debug checks to the main path.\n\nTest: test.py -b -r --interpreter -t 001-HelloWorld\nChange-Id: I45a39ec73abaefaecf5b8c636f3f9d519a0a8bb0\n"
    },
    {
      "commit": "d88f5f7b22571511b93206f02806568648138a35",
      "tree": "651f3e1954db1da94b2bb27f0393cb17bc3e89ab",
      "parents": [
        "e7019db7f0dce1bbad836396710c792fd39593fc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 16 14:22:33 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 16 14:22:33 2018 +0100"
      },
      "message": "Shrink couple of x86 mterp handlers.\n\nUse helpers to make more room for the follow-up CL.\n\nRefactor the code so that it is possible to add\nnon-opcode specific helpers with custom name.\n\nTest: test.py -b -r --interpreter -t 001-HelloWorld\nChange-Id: I3714f83c10e1c16d3b26108e6eb475805482c785\n"
    },
    {
      "commit": "766e74f58312af149219473a691c6f2d9bcca428",
      "tree": "4c216f5ebd128075f20d0857afb383d31da20c5a",
      "parents": [
        "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 02 17:12:24 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 03:22:29 2018 +0100"
      },
      "message": "Cleanup the cpp-define-generator definitions.\n\nTest: test-art-host-gtest-arch_test\nChange-Id: Ifda7a51d19156b1eb62bc39b16ec559d609744e5\n"
    },
    {
      "commit": "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd",
      "tree": "0c4f88f1fa6ab56fd1b24426c75f17836a6bd81d",
      "parents": [
        "78940f2254354373c6b311c759c43f51d3ad77f1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 01 18:17:45 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 03:22:29 2018 +0100"
      },
      "message": "Rewrite cpp-define-generator\n\nThe new method works by generating temporary per-architecture\nhuman-readable object file with the constants embedded in it.\nPython script extracts those values and generates the header.\n\nThis means the values can now implicitly depend on pointer size,\ncompile time flags, or ABI specific object layout with no hacks.\n\nTest: test-art-host-gtest-arch_test\nChange-Id: Id6e8c77c01f9d6c49cd6d40e3487b56fa4777349\n"
    },
    {
      "commit": "78940f2254354373c6b311c759c43f51d3ad77f1",
      "tree": "47025712f5cb69ba3fcaeffef37ac081ab08339d",
      "parents": [
        "0614de7055d009118e0687658687dcb55963de94"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Sep 25 17:44:39 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 05 22:15:45 2018 +0100"
      },
      "message": "Remove the auto-generated asm_support_gen.h\n\nStill generate the file, just don\u0027t commit it in the repository.\n\nThe build system decides the location, which is: out/soong/.intermediates/art/tools/\ncpp-define-generator/cpp-define-generator-asm-support/\u003carch\u003e/gen/asm_support_gen.h\n\nTest: test-art-host-gtest\nChange-Id: I586bad682818acb5293919b84c02738bba3073ea\n"
    },
    {
      "commit": "912f36c954a91bdc7d9801a111ba089ec2a23681",
      "tree": "87e576e86867140c478d6959ce20a261daaad60a",
      "parents": [
        "26f048f48cdb1e884aab2b6fddf26d58346d29ad"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Sep 08 12:22:58 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Sep 27 15:16:09 2018 +0100"
      },
      "message": "Add small thread-local cache for use by the interpreter.\n\nSmall (one page) cache which can be used on the hottest paths\nin the interpreter and which does not require synchronisation.\nThis CL adds the code but it does not use it for anything yet.\n\nTest: test-art-host-gtest\nChange-Id: I41d4e7a86a0f62f7a4efc165b8934232b4e766c7\n"
    },
    {
      "commit": "b2683cb0ae69c9a8a0ba654f50fa743a9117171c",
      "tree": "9ebe949e41ff00dbaabe415f295fa4825d4dd51d",
      "parents": [
        "8926b780fd75f23e8685e108e2d3f4905f3809fd",
        "c8b1d5e0f2112c78aeed0d114b0c4f8b6a234c10"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 21 09:05:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 21 09:05:50 2018 +0000"
      },
      "message": "Merge \"ARM/ARM64: Improve lock/unlock entrypoints.\""
    },
    {
      "commit": "c8b1d5e0f2112c78aeed0d114b0c4f8b6a234c10",
      "tree": "20b4fc7c62243a6616aa04661b8750cad9d4f1bc",
      "parents": [
        "6623bc389c43efc87668ce7465e19b195e765e22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 15 16:07:12 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 21 10:02:23 2018 +0100"
      },
      "message": "ARM/ARM64: Improve lock/unlock entrypoints.\n\nDo the same in fewer instructions.\n\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nChange-Id: I8003481116fd3dc6a1559b84fdc776b92dba0c68\n"
    },
    {
      "commit": "1f010164bea4714e9f653c52e8948c5d5305040b",
      "tree": "e69b2c3f4d2645d4097655f8914325945fe5dbbd",
      "parents": [
        "a7d37cf735f05cfc3a3585a5c44eb65d8a279874"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 15 08:59:32 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 16 13:01:34 2018 -0700"
      },
      "message": "Move ArtDexFileLoader to libdexfile\n\nAdds a dependency from libdexfile on libartbase, but allows the use of\nMemMap loaders, etc.\n\nBug: 78652467\nTest: make -j 40 checkbuild\nChange-Id: I15cf33893ca9192050762f8350a3cc1e39f88dc5\n"
    },
    {
      "commit": "1979c64214bd505c013d573bc8729ee94f7bdea5",
      "tree": "9b4b2298b8b9d15cd6ca0a1e06e3771f3db2163f",
      "parents": [
        "5a87e19e4bf1b6719c2aad3effde1b38d2c3085c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 14:41:18 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 15:08:49 2018 -0700"
      },
      "message": "Clean up include paths\n\nRemove runtime/globals.h and make clients point to the right globals.h\n(libartbase/base/globals.h).  Also make within-libartbase includes\nrelative rather than using base/, etc.\n\nBug: 22322814\nTest: make -j 40 checkbuild\nChange-Id: I99de63fc851d48946ab401e2369de944419041c7\n"
    },
    {
      "commit": "67bf42e89592c3a1c648f927f2ce3ccb189a1161",
      "tree": "054d5b7adf7cc62d4d2a2118a70c0fbdd1751610",
      "parents": [
        "d961043ff1dd6fddb68aa90c1f939cfafec24219"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 26 16:43:04 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 28 15:08:21 2018 -0800"
      },
      "message": "Header library to remove dependence on runtime/\n\nAdd a new header library to remove libdexfile and others\u0027 dependence on\nruntime (typically runtime/base) includes in libdexfile.  Also a small step\nto tease dexlayout and profman away from relying on these as well.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host-gtest\n\nChange-Id: I38e2fe399a75f4bc6318c77a71954c00ea73ec2b\n"
    },
    {
      "commit": "334b9d73482fba9c335d9b758041fc0865ef74d4",
      "tree": "1e0d2050065110c37ee03ee8010ec24c8d31f32e",
      "parents": [
        "db8d9091bbab41060584ab80882b60df20337da7"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 12 18:27:56 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 14 10:57:05 2018 -0800"
      },
      "message": "Move libdexfile out of runtime\n\nMove the files out of runtime, leaving unfortunate dependences still\nthere on runtime/base (for the moment).  Also separates the build logic\ninto two Android.bp files.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ib0a1cda833b29ecfa4c8c50f23fab89ba666f491\n"
    },
    {
      "commit": "8c0961f9e061ee4b04c1c4ba8ad5cca13bcf884d",
      "tree": "f6e5a970a6bcc0935e150cb6c28a520bf31ba964",
      "parents": [
        "2b1a21ed3581f77f34d582507177ebce33565534"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 23 16:11:38 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 24 09:24:29 2018 -0800"
      },
      "message": "Move missed files to libdexfile\n\nReduce the dependencies on utf and utils in preparation for separate\ndirectory.\n\nBug: 22322814\nTest: make -j 50 test-art-host\n      make -j 50 dexdump2 dexlist\n\nChange-Id: Icdecf895dafec63ef903514eef79d459abc14925\n"
    },
    {
      "commit": "2c64a837e62c2839521c89060b5bb0dcb237ddda",
      "tree": "65475ed2e313ff17354e741bac7e9c85739b8b95",
      "parents": [
        "6cd0005698181e4cef2247b632d396e605d58fa3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 04 11:31:56 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 05 11:27:50 2018 +0000"
      },
      "message": "Change ClassStatus to fit into 4 bits.\n\nIn preparation for extending the type check bit string from\n24 to 28 bits, rewrite ClassStatus to fit into 4 bits. Also\nperform a proper cleanup of the ClassStatus, i.e. change it\nto an enum class, remove the \"Status\" word from enumerator\nnames, replace \"Max\" with \"Last\" in line with other\nenumerations and remove aliases from mirror::Class.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 64692057\nBug: 65318848\nChange-Id: Iec1610ba5dac2c527b36c12819f132e1a77f2d45\n"
    },
    {
      "commit": "fc9555dac51a3cf12bb13f4e3781d2f2f6c9f91f",
      "tree": "4b7e722061366679f2fbe3478c3fb3ca029b8620",
      "parents": [
        "fd443eb00b2456006f03252ba085c1f851e8adf5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Nov 05 16:32:19 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Nov 05 17:11:15 2017 -0800"
      },
      "message": "Remove mterp reliance on code item layout\n\nPass dex instruction pointer intead of code item pointer to the mterp\nentry code. This removes a dependency on the code item layout since it\nmay change in the future for compact dex.\n\nBug: 63756964\nTest: test/testrunner/testrunner.py --host -j40\n\nChange-Id: Icfffb2e17372439f0833ecce1c0ddb05e7e7e69c\n"
    },
    {
      "commit": "2ca278036432eefbdbf39502dfcfb7e38a54332c",
      "tree": "8aa7ab585414f2b54186ee4285f2435be90de335",
      "parents": [
        "9389ae7309180f4dccc3c34e26798ed428f0d054"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 14:57:43 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 15:11:33 2017 -0700"
      },
      "message": "Run bpfmt\n\ncd art; find . -name \u0027*.bp\u0027 | xargs bpfmt -w\n\nTest: mmma art\nChange-Id: Iec406b734180313b98a58b99a776738772e63cc1\n"
    },
    {
      "commit": "5122e6ba34d46851cd89f2ad55bf6bb067e038d6",
      "tree": "e96ba37b6451be7a06d930b0274251cac35ce05e",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 17 16:10:09 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 11:29:31 2017 +0100"
      },
      "message": "ART: Remove ArtMethod::dex_cache_resolved_methods_.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --target on Nexus 6P\nTest: Repeat the above tests with ART_HEAP_POISONING\u003dtrue\nTest: Build aosp_mips64-eng\nChange-Id: I9cd0b8aa5001542b0863cccfca4f9c1cd4d25396\n"
    },
    {
      "commit": "0a87a653a296854c9a0abacd9bb1557ee4c4d05d",
      "tree": "4763469d136f3879bbce93521827717dbe05bd5b",
      "parents": [
        "52a3c989f96984f9bc9e02620694fc44708a1df2"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 12 13:43:15 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 07 11:49:38 2017 -0700"
      },
      "message": "Add two special runtime methods.\n\nThis is in preparation for being able to deoptimize upon returning\nfrom a runtime method. We need to identify two special runtime methods:\nclinit and suspend-check since if deoptimization happens when returning\nfrom these two methods, we need to execute the dex instruction that\ncorresponds to the dex pc of the deoptimization point. A clinit can\nbe implicit for an invoke-static, in which case the invocation hasn\u0027t\nhappen yet so we have to execute the invoke-static in the interpreter.\nFor a suspend-check, the dex instruction for it hasn\u0027t been executed yet.\n\nTest: full run-test/gtest on both host and target.\nBug: 33616143\nChange-Id: Id1bdfcfa84a9ca27d5ee9da4b4a99467b1a4a845\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "279cfba1f6086c25d6737471bc4f66ae79f4e681",
      "tree": "e9ee9c1fb1180c89734ad57b3ee601a5545d9c9e",
      "parents": [
        "62432ae776aa618082865b40b111dbff75aedeb6"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Sat Jul 22 00:24:43 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Jul 24 09:43:09 2017 -0700"
      },
      "message": "MIPS: Follow-up to hash-based DexCache methods array\n\nThis is a MIPS-specific follow-up to\nhttps://android-review.googlesource.com/#/c/431679/.\n\nTest: booted MIPS32R2 in QEMU\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\n\nChange-Id: Ib16cf6613ae3b6537e7fbae1aff9a3316c9fd540\n"
    },
    {
      "commit": "07bfbace6f835e6c748fd68ec7624992478b16c1",
      "tree": "5d094a00fbc90455bd9b53e042cf8b4fe8433462",
      "parents": [
        "ba118827465d12177f3996e50133960087b1c916"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 06 14:55:02 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 16:33:00 2017 +0100"
      },
      "message": "Hash-based DexCache methods array.\n\nTotal boot*.art size for aosp_angler-userdebug:\n  - arm64:\n    - before: 11603968\n    - after: 10129408 (-1.4MiB, -12.7%)\n  - arm:\n    - before: 8626176\n    - after: 7888896 (-0.7MiB, -8.5%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nTest: Build aosp_mips64-eng\nBug: 30627598\nChange-Id: I7f858605de5f074cbd7f0d9c4c072fbd44aee28f\n"
    },
    {
      "commit": "8228cdf4ad6322ec8133564aaa51f966d36c0f17",
      "tree": "6d2f5cf4e742ad644ad30eb96a9f943c9ebcb34b",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 15:03:54 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 13:13:15 2017 -0700"
      },
      "message": "ART: Move CalleeSaveType to callee_save_type.h\n\nMove the type out of runtime to decrease dependencies. Make it\na proper enum class. Fix up usage.\n\nTest: m test-art-host\nChange-Id: Id84c44bf3c59f37c8a43548e720c5fb65707b198\n"
    },
    {
      "commit": "afdcbcb56d0c2f985d0291c369bbc493eedb05b0",
      "tree": "236266aadd25eff5f37ca08e5295ae4b96065dcb",
      "parents": [
        "8d0f3aaf28358697ec812955cdf975ca6c6ff901"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 26 16:43:35 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 26 16:48:27 2017 -0700"
      },
      "message": "Remove some hardcoded cases of kCardShift\n\nAlso added cpp-define-generator to do this. This makes it easier to\nchange the GC card size.\n\nBug: 36457259\nTest: test-art-host\n\nChange-Id: I03b59f2bbb9b483280bea34575f5373ec6b15b98\n"
    },
    {
      "commit": "969ca5a0d8928e4dd3697a834b891654630aac84",
      "tree": "fd012a50a4e36b6e27bd87c3434e46839139ffc2",
      "parents": [
        "c631854b43ecd726efc902096abc4d9186cb397c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 15 13:05:59 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 15 13:07:17 2017 -0800"
      },
      "message": "cpp-define-generator: presubmit hook prints better error message\n\nTest: cd art \u0026\u0026 ../tools/repohooks/pre-upload.py\nBug: 35381554\nChange-Id: Ia8536631c8c3117aeb0bf79862757717842b3a2b\n"
    },
    {
      "commit": "2bb70d31ee7749b18b5e0e5ce50a12d30bc1f27c",
      "tree": "789efed4ffafdd03ac9ffd1c06d7f74ea962d2d2",
      "parents": [
        "7b220d60e3cb58c384a0d245106406080c6f3e37"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 06 10:34:14 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 06 10:49:57 2017 -0800"
      },
      "message": "Revert \"Revert \"build: Generate asm_support_gen.h from the build, validate up-to-date\"\"\n\nThis reverts commit 592505c340e82091a6e13e2dff3d8589255df0bb.\n\nFix HOST_PREFER_32_BIT\u003dtrue causing buildbot\nto fail with the new asm_support genrule.\n\nTest: SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue HOST_PREFER_32_BIT\u003dtrue\\\n      make -j32  build-art-host-tests\nOriginal-Change-Id: I1f0f94914d328c396906583d0732e281c076e69f\nChange-Id: Ie08a11fdb9486b697d6cef4cec41b23ff120b205\n"
    },
    {
      "commit": "592505c340e82091a6e13e2dff3d8589255df0bb",
      "tree": "70075f3e50afc6f1709d0ff296b7e2e8dd223f3b",
      "parents": [
        "2449a154c457eaa2c6a30e11184bb7381903cfd5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 04 03:26:14 2017 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 04 03:26:14 2017 +0000"
      },
      "message": "Revert \"build: Generate asm_support_gen.h from the build, validate up-to-date\"\n\nBreaks the build bot:\n\nerror: art/tools/cpp-define-generator/Android.bp:41:1: dependency \"cpp-define-generator-data\" of \"cpp-define-generator-asm-support\" missing variant \"arch:linux_x86_64\"\n\nThis reverts commit 2449a154c457eaa2c6a30e11184bb7381903cfd5.\n\nChange-Id: I05ae3fa3c56a10238d48c52faa10b8c9c82d9d24\n"
    },
    {
      "commit": "2449a154c457eaa2c6a30e11184bb7381903cfd5",
      "tree": "e6f66104451b46f4fe0dce618a11b861a382f08a",
      "parents": [
        "27374ae7b59094e115ff23139c54ac97088eb01f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 02 14:33:39 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 02 16:18:27 2017 -0800"
      },
      "message": "build: Generate asm_support_gen.h from the build, validate up-to-date\n\nWhen building libart/libartd, also generate asm_support_gen.h\nautomatically. In addition, verify that our checked-in version\n(runtime/generated/asm_support_gen.h) is up-to-date with what the build\ngenerates.\n\nFurthermore, add a presubmit hook that runs with \u0027repo upload\u0027\nthat validates that the up-to-date version of asm_support_gen.h\nis being uploaded to gerrit.\n\nThis makes it significantly more difficult to accidentally\nmerge a CL that doesn\u0027t have the auto-generated headers updated\nand break the build as a result.\n\nBug: 34387670\nTest: make libart libartd\nTest: cd art \u0026\u0026 tools/repohooks/pre-upload.py\nChange-Id: I1f0f94914d328c396906583d0732e281c076e69f\n"
    },
    {
      "commit": "e761bccf9f0d884cc4d4ec104568cef968296492",
      "tree": "05a2d20d61c0e91270df2747f0c242433b5ce62b",
      "parents": [
        "b0355130e38034db6b904783a00f74a3524e1881"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 08:59:37 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 09:32:17 2017 +0000"
      },
      "message": "Revert \"Revert \"Load the array class in the compiler for allocations.\"\"\n\nThis reverts commit fee255039e30c1c3dfc70c426c3d176221c3cdf9.\n\nChange-Id: I02b45f9a659d872feeb35df40b42c1be9878413a\n"
    },
    {
      "commit": "fee255039e30c1c3dfc70c426c3d176221c3cdf9",
      "tree": "8207b72cc76513fed9f7b3c01aaa32cd54a87f1c",
      "parents": [
        "cc99df230feb46ba717252f002d0cc2da6828421"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 19 02:11:15 2017 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 19 02:11:15 2017 +0000"
      },
      "message": "Revert \"Load the array class in the compiler for allocations.\"\n\nlibcore test fails.\n\nThis reverts commit cc99df230feb46ba717252f002d0cc2da6828421.\n\nChange-Id: I5bac595acd2b240886062e8c1f11f9095ff6a9ed\n"
    },
    {
      "commit": "cc99df230feb46ba717252f002d0cc2da6828421",
      "tree": "73ac045673e150fa367a8da4d46874f28e928491",
      "parents": [
        "4507fdcb70bd570d5f3968061bf991f0a1233a93"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 17 23:00:24 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 15:16:32 2017 +0000"
      },
      "message": "Load the array class in the compiler for allocations.\n\nRemoving one other dependency for needing to pass\nthe current method, and having dex_cache_resolved_types_\nin ArtMethod.\n\noat file increase:\n- x64: 0.25%\n- arm32: 0.30%\n- x86: 0.28%\n\ntest: test-art-host, test-art-target\nChange-Id: Ibca4fa00d3e31954db2ccb1f65a584b8c67cb230\n"
    },
    {
      "commit": "f9bf250cc642c4e3e0c6904550fe922d3359a737",
      "tree": "953351c7e13b45e9246625ad81bce708788d96f9",
      "parents": [
        "b73e659be3fb6474ff3a993cd25ecbfa1cc4715c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 14 14:59:04 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 15 14:52:22 2016 +0000"
      },
      "message": "Remove dex cache string from mirror::Class.\n\nThe compiled code does not need it anymore.\n\nTest: test-art-host test-art-target\nChange-Id: I71c08ce12d450ab2b2cd018330d42a8b8c9e3da2\n"
    },
    {
      "commit": "39ce7d2907edb978f1ab6cd75884be48ab11cd77",
      "tree": "7d2f0c56bd8a7dd483b5c1ede7047b623d0e35d7",
      "parents": [
        "5302bd999afee6db5b0cfd63e6a49b0fcbf92dd4",
        "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\""
    },
    {
      "commit": "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a",
      "tree": "19e2d9d5e8476bf526dd5924ef05b1d727b75f8b",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 03 13:06:52 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 09 18:14:08 2016 -0800"
      },
      "message": "Make empty checkpoint work while weak ref access is disabled.\n\nFix a potential race on PushOntoMarkStack for CC by running an empty\ncheckpoint (while weak ref access is disabled).\n\nBug: 32508093\nBug: 12687968\nTest: test-art-host with CC/CMS, libartd boot with N9, Ritz EAAC.\nChange-Id: I3749bb525e7734804307ee16262355f3fc730312\n"
    },
    {
      "commit": "ca620d7bc03b23a0bcf0ef58df58603ee000dca0",
      "tree": "07cb026075b70a958d14ae84b4e213178a6ba0b4",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 08:09:33 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 15:04:48 2016 -0800"
      },
      "message": "ART: Fix tidy warnings\n\nSwitch to char versions of find variants.\n\nAdd \"explicit\" constructor variants or refactor and\nremove defaults.\n\nUse const references.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I970cc2f47d6cf8f0c74104b994b075b2fafb3d45\n"
    },
    {
      "commit": "6f198e3fde6fe0009c1f333c283c6d1cb4fa9b55",
      "tree": "3ee9f75dd0906be955de1bceab1a397aecf1a201",
      "parents": [
        "a840d6155dd3332a1bef42facb1a5d2a3a524c5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 03 11:15:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 07 12:57:49 2016 -0800"
      },
      "message": "Add forwarding address checks for X86, arm, arm64\n\nAdded to READ_BARRIER_MARK_REG.\n\nBug: 30162165\n\nTest: test-art-host, test-art-target\n\nChange-Id: I15cf0d51ed3d22fa401e80ffac3877d61593527c\n"
    },
    {
      "commit": "1cf194f055b7152fde817787fcdadeea1fb1067c",
      "tree": "b47da959af7a1f0138d92fe9989ae299462fed96",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 20:13:24 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 02 14:27:06 2016 -0700"
      },
      "message": "Check for forwarding address in READ_BARRIER_MARK_REG\n\nWhen the object is in the from-space, the mark bit is not set.\nIn this case, we can also check the lock word for being a forwarding\naddress. The forwarding address case happens around 25% of the time.\nThis CL adds the case for forwarding address lock words to\nREAD_BARRIER_MARK_REG.\n\nReduces total read barriers reaching runtime on ritzperf:\nSlow paths: 20758783 -\u003e 15457783\n\nDeleted the mark bit check in MarkFromReadBarrier since most of the\ncallers check the bit now.\n\nPerf:\nReadBarrier::Mark: 2.59% -\u003e 2.12%\nart_quick_read_barrier_mark_reg01: 0.79% -\u003e 0.78%\nart_quick_read_barrier_mark_reg00: 0.54% -\u003e 0.50%\nart_quick_read_barrier_mark_reg02: 0.31% -\u003e 0.25%\n\nOnly X86_64 for now, will do other archs after.\n\nBug: 30162165\n\nTest: test-art-host\n\nChange-Id: Ie7289d684d0e37a887943d77710092e380457860\n"
    },
    {
      "commit": "3a8360f0bcbe1547063678e572cc6fe8a55a0ca0",
      "tree": "954d949d440fe18e3a58d82bbfeaaeb99ae121f8",
      "parents": [
        "3dbf5c44fb20337e61c6d1e22c372e4b614f1ff3",
        "2ecfd270adb29861b493de51cfb8670e276e0c5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 02 00:55:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 02 00:55:28 2016 +0000"
      },
      "message": "Merge \"Add interface fast path to art_quick_check_cast for X86_64\""
    },
    {
      "commit": "2ecfd270adb29861b493de51cfb8670e276e0c5e",
      "tree": "6aa5d0062a59f43b2c188fe0b1f11d56aedc588a",
      "parents": [
        "19dfeb0e725bca7fd85b4a8a96ce9f3d30408aa3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 10:10:05 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 15:49:51 2016 -0700"
      },
      "message": "Add interface fast path to art_quick_check_cast for X86_64\n\nX86_64 CC ritzperf results from perf:\nart_quick_check_cast: 0.44% -\u003e 0.76%\nartIsAssignableFromCode: 1.78% -\u003e 0.11%\n\nAdded stub test.\n\nBug: 32577579\n\nTest: test-art-host\n\nChange-Id: I5ed5675c4674fac8eed8826eb50527f4876e5f07\n"
    },
    {
      "commit": "22c5befef30a67c2101473c7701e1a442e364521",
      "tree": "63062930c489f15597fb9c22a3e561317703873e",
      "parents": [
        "56cc9511b0ed68648113a22617ed092ad2de37ef"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Nov 01 10:02:15 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Nov 01 17:03:39 2016 +0000"
      },
      "message": "tools: Fix generate-asm-support script\n\nA recent change of cpp-define-generator to bp\nhad removed the \u0027d\u0027 suffix from the binary name.\n\nChange-Id: Ie3fe3f504789798ccfb83b77d5b47e8aeb65e0cc\n"
    },
    {
      "commit": "fe6064ae8b861f1290aa793ce0de219781da6a10",
      "tree": "a24da585adbafc5932e4c3aab07f0e1d9a639628",
      "parents": [
        "090a5da3a7f320b9d2aa9fa461efc11a7eb39392"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 30 13:49:26 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 08 11:00:53 2016 -0700"
      },
      "message": "Convert more of art to Android.bp\n\nRelanding I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef, with fixes to\ncompile dalvikvm32 and dalvikvm64, and add them as dependencies of\ntests.  Also fixes HOST_PREFER_32_BIT by moving the override from the\ndefaults, which are not used by everything in art, to the art_cc_binary\nmodule type.\n\nTest: rm -rf out/host; m -j HOST_PREFER_32_BIT test-art-host; m -j test-art-host\nChange-Id: I64d3eef5080e128103d052497760c3521cc253c6\n"
    },
    {
      "commit": "1a861719fdadf1a27cf7df9955311cc7d4d4c217",
      "tree": "c15c6f0b213845b20a0bae8b900940a4eecdd3f5",
      "parents": [
        "e251b1204f678919e37da32667fab2c5bbcbbb76"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 07 00:16:35 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 07 00:17:20 2016 -0700"
      },
      "message": "Revert \"Convert more of art to Android.bp\"\n\nThis reverts commits 4a456275e25c536f525b6c020ca38c8ada8a05de and\n198a957915eb75c5f837ea57d385aa6cfa69f76e.\n\nChange-Id: Ibe49f611ae3ed7748bcfc9ac07f8d1f52d6bea3a\n"
    },
    {
      "commit": "4a456275e25c536f525b6c020ca38c8ada8a05de",
      "tree": "f30cb1bbca4dbacc264409ae408a740f2c4dd04d",
      "parents": [
        "9d185da3bef8caf015d3dbf4ad79c520af7ce3b1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 30 13:49:26 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 06 12:15:24 2016 -0700"
      },
      "message": "Convert more of art to Android.bp\n\nChange-Id: I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef\n"
    },
    {
      "commit": "74898e787b0fd25bc38e579001860c0a9fbef580",
      "tree": "fc9ba4bcdf854267d09bc99c59a25a987f58dba5",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 25 13:23:01 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Tue Aug 30 11:44:56 2016 -0700"
      },
      "message": "ART: Clean up x86 asm in dex cache entrypoints\n\nChange-Id: Icc315d1d5da16cc67eee3c0557cae5781623f3b6\nTest: test-art-host\n"
    },
    {
      "commit": "98d6552f0d9ba5f7137965108c7b300b90332f8c",
      "tree": "3d7914f7e72c62f4f30960f1dedd8223fb26afb1",
      "parents": [
        "521691ae4dfad47cf6b46858347fa5fa32fd7bcc"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 25 14:45:51 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 25 15:04:52 2016 -0700"
      },
      "message": "ART: Add STRING_DEX_CACHE_ELEMENT_SIZE\n\nChange-Id: Ib484d959bd7eac3793ce508e1d608f2c7402927b\n"
    },
    {
      "commit": "97a8a9a3385024d7a070a4b79d45afe9a64587cd",
      "tree": "fdff406b49ba7baa296955ad21bcba85446df212",
      "parents": [
        "da0f5e72cc5f2747a330b21afa34e7d798fc5c54"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 11:23:48 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Mon Aug 22 10:46:24 2016 -0700"
      },
      "message": "ART: Adding asm support for string dex cache\n\nAdded constants and offsets for the string dex cache fast paths that\nwill be introduced into entrypoints in subsequent commits.\n\nTest: test-art-host\n\nChange-Id: I19f97526e06cbedc782d5ef11359796731cdad82\n"
    },
    {
      "commit": "38dd0e8f0a0158c12eba2a9d91a8086603156f2d",
      "tree": "0e85d38ddb3dbcef44b06ab5ba182cf69a3bc4fb",
      "parents": [
        "f2b1529b0988a1722b718fee6911e0030e95c9b6",
        "2ee98f2172df27c0e57738e214d7a1f0739ac916"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 10 19:06:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 10 19:06:01 2016 +0000"
      },
      "message": "Merge \"Fix negative array size checking\""
    },
    {
      "commit": "2ee98f2172df27c0e57738e214d7a1f0739ac916",
      "tree": "f8d7d9fd0a831fb65447ee38f4f6ef54471495a0",
      "parents": [
        "0ed44f95955f48b21763dd32cbd510886e9bb2e1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 10 10:08:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 10 10:46:23 2016 -0700"
      },
      "message": "Fix negative array size checking\n\nMask out the alignment after the size check. Was broken in previous\nCL.\n\nTest: target test 412 --64 with CC + baker\n\nBug: 30162165\nChange-Id: Ic4eb7229fb742490cd9193baf0faa2be6b454f38\n"
    },
    {
      "commit": "fd36f1f927c138575184a1f4c7ea4e7abb3e2dbf",
      "tree": "2debb35c9193ac019071e0625986698ccbcaabb8",
      "parents": [
        "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 03 18:49:58 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 10 14:19:49 2016 +0100"
      },
      "message": "Rename callee save enumerators.\n\nAnd related image method enumerators, macros, etc.\nClean up some entrypoint assembly comments.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/252348\n\nTest: Run ART test suite on host and Nexus 9.\nBug: 30212852\nChange-Id: I2707342d4255c88c547655be83ed97a67e12ae9e\n"
    },
    {
      "commit": "8261d02f9523b95013108f271b82bb157ef6f71d",
      "tree": "026969c0ee61c0deae7a625fba81a711acd218aa",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 08 09:41:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 09:57:01 2016 -0700"
      },
      "message": "Revert \"Revert \"ARM64 asm for region space array allocation\"\"\n\nAlso added missing large object check. No regression from the check\nN6P CC EAAC time at 1313 for 10 samples vs 1314 before reverts.\n\nBug: 30162165\nBug: 12687968\n\nTest: test-art-target with CC + heap poisoning\n\nThis reverts commit 6ae7f3a4541e70f04243a6fe469aa3bd51e16d79.\n\nChange-Id: Ie28f652f619898d7d37eeebf3f31a88af8fac949\n"
    },
    {
      "commit": "965c0b9f98a4acbec7be148291196e30784bba2d",
      "tree": "c9b53c36226535f2941d47a1ea222da114266680",
      "parents": [
        "2e98023165349ab91855555f63fed8dad3c471fe",
        "952dbb19cd094b8bfb01dbb33e0878db429e499a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:44:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 04 14:44:10 2016 +0000"
      },
      "message": "Merge \"Change suspend entrypoint to save all registers.\""
    },
    {
      "commit": "952dbb19cd094b8bfb01dbb33e0878db429e499a",
      "tree": "82932c2b00245042e2c129f3d4133f6431657da3",
      "parents": [
        "df638c66d1f385d4e217b2ab22c5e48a7eefdef4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 12:01:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:51:52 2016 +0100"
      },
      "message": "Change suspend entrypoint to save all registers.\n\nWe avoid the need to save/restore registers in slow paths\nand get significant code size savings. On Nexus 9, AOSP:\n  - 32-bit boot.oat: -1.4MiB (-1.9%)\n  - 64-bit boot.oat: -2.0MiB (-2.3%)\n  - other 32-bit oat files in dalvik-cache: -200KiB (-1.7%)\n  - other 64-bit oat files in dalvik-cache: -2.3MiB (-2.1%)\n\nTest: Run ART test suite on host and Nexus 9 with gc stress.\nBug: 30212852\nChange-Id: I7015afc1e7d30341618c9200a3dc9ae277afd134\n"
    },
    {
      "commit": "36a270ae4f288e49493432b7128f899ad579849e",
      "tree": "99f134bbfe111b1c42b1b0c19d8b65175a3e6fc8",
      "parents": [
        "89bd8358c0a69e8cd6456d81d88ef366e261f732"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 18:08:51 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 03 15:46:18 2016 -0700"
      },
      "message": "Change one read barrier bit to mark bit\n\nOptimization to help slow path performance. When the GC marks an\nobject through the read barrier slow path. The GC sets the mark bit\nin the lock word of that reference. This bit is checked from the\nassembly entrypoint the common case is that it is set. If the bit is\nset, the read barrier knows the object is already marked and there is\nno work to do.\n\nTo prevent dirty pages in zygote and image, the bit is set by the\nimage writer and zygote space creation.\n\nEAAC score (lower is better):\nN9: 777 -\u003e 700 (average 31 of runs)\nN6P (960000 mhz): 1737.48 -\u003e 1442.31 (average of 25 runs)\n\nBug: 30162165\nBug: 12687968\n\nTest: N9, N6P booting, test-art-host, test-art-target all with CC\n\nChange-Id: Iae0cacfae221e33151d3c0ab65338d1c822ab63d\n"
    },
    {
      "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": "3c92b129047b12f0887a2068b3800d7a7dcb7d78",
      "tree": "7bc782a01f9da093e9a5eed41d7a2c7bc8f570fe",
      "parents": [
        "311fdf52f7d33b988130d07b3d3a86eb148051ca"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:19:44 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:19:44 2016 -0700"
      },
      "message": "cpp-define-generator: \"make art-update-cpp-defines\" to regen asm_support\n\nChange-Id: I1a550eda6c77f38e63bb1c8fb943541cbd3f9cdf\n"
    },
    {
      "commit": "311fdf52f7d33b988130d07b3d3a86eb148051ca",
      "tree": "107308e59eb8cf528ff74029c3c180ca2a7242a6",
      "parents": [
        "a69e790ad9751807d4a660bb4432b7ea79f0ad3b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 22 15:59:16 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jul 25 15:15:03 2016 -0700"
      },
      "message": "runtime: Refactor asm_support to be auto-generated (mostly)\n\nUsage:\n\n* If the defines are no longer up to date, re-run generate-asm-support\n\n* To add a new field:\n--- Edit one of the offset_ or constant def files.\n--- Rebuild cpp-define-generator and re-run generate-asm-support\n\nChange-Id: I772430fcf1ad9af40898ebb453848f8412612386\nTODO: Integrate this into the build somehow\nTODO: Account for 32 vs 64-bit and read barrier vs no read barrier\n"
    }
  ]
}
