)]}'
{
  "log": [
    {
      "commit": "3481ba2c4e4f3aa80d8c6d50a9f85dacb56b508b",
      "tree": "77551c0a6d060e5a3723ad35d2ab101038f9328a",
      "parents": [
        "095d209342420563becfec6676b46a6c6b839107"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 12:22:36 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 16:30:13 2015 +0100"
      },
      "message": "ART: Clean up includes.\n\nReduce dependencies to improve incremental build times.\nBreak up circular dependency involving class_linker-inl.h.\n\nChange-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db\n"
    },
    {
      "commit": "48ee356484225ef0d7cfa197b1699524b866c802",
      "tree": "ea33754d124d5e15b02e1a7c09c81d27fd625ba3",
      "parents": [
        "58565098b2298041ccc97371a3cc486df88d51b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 19:57:29 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 20:42:14 2015 -0700"
      },
      "message": "ART: Ignore result for exception-case JNIEndWithReference\n\nThe value may not contain a valid jobject, so ignore and use null\ndirectly.\n\nRefactor a bit to have one common function for both synchronized\nand non-synchronized case.\n\nAdd a test to the JNI compiler tests.\n\nBug: 18135031\nChange-Id: If2f004a112f36f4ff68172a946dec67ce561ae4d\n"
    },
    {
      "commit": "e598e0439ab825ea1a42fe8002b54241c6163ce6",
      "tree": "307be41594ff3c804d5dcda890ac055a6a4f7674",
      "parents": [
        "1b743777e6b6cec3387b0ee347b6a8a03779c345"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 14:57:10 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 10 15:34:32 2015 -0700"
      },
      "message": "ART: Add Array.createObjectArray to unstarted runtime\n\nNecessary for compile-time initialization of android.text.Layout.\n\nBug: 19542228\nChange-Id: I4220c65fcc3a8aaa2765b6f07f1f81c330484244\n"
    },
    {
      "commit": "c785344b87221f5e4e6473e5b762e4e61fe65dcf",
      "tree": "cd32ad2c2604596a18926f04d4c313dab255ecfd",
      "parents": [
        "a29d93b380c9aeb8270e281aefbdd0c77a430d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 27 14:35:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 12:57:27 2015 -0700"
      },
      "message": "Move ArtField to native\n\nAdd linear alloc. Moved ArtField to be native object. Changed image\nwriter to put ArtFields after the mirror section.\n\nSavings:\n2MB on low ram devices\n4MB on normal devices\n\nTotal PSS measurements before (normal N5, 95s after shell start):\nImage size: 7729152 bytes\n23112 kB: .NonMoving\n23212 kB: .NonMoving\n22868 kB: .NonMoving\n23072 kB: .NonMoving\n22836 kB: .NonMoving\n19618 kB: .Zygote\n19850 kB: .Zygote\n19623 kB: .Zygote\n19924 kB: .Zygote\n19612 kB: .Zygote\nAvg: 42745.4 kB\n\nAfter:\nImage size: 7462912 bytes\n17440 kB: .NonMoving\n16776 kB: .NonMoving\n16804 kB: .NonMoving\n17812 kB: .NonMoving\n16820 kB: .NonMoving\n18788 kB: .Zygote\n18856 kB: .Zygote\n19064 kB: .Zygote\n18841 kB: .Zygote\n18629 kB: .Zygote\n3499 kB: .LinearAlloc\n3408 kB: .LinearAlloc\n3424 kB: .LinearAlloc\n3600 kB: .LinearAlloc\n3436 kB: .LinearAlloc\nAvg: 39439.4 kB\n\nNo reflection performance changes.\n\nBug: 19264997\nBug: 17643507\n\nChange-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c\n"
    },
    {
      "commit": "1e7e85a40744ddd0c36b206d0960fc3cf24a7e62",
      "tree": "87d0f3e876214c877d76a12588b1192c672c4d98",
      "parents": [
        "6977899440206c7b0a9a3e38650338fd052666f9",
        "c136312832d4be25db2ecc5673967d71d0ad4b9c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 10 18:22:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 18:22:10 2015 +0000"
      },
      "message": "Merge \"Avoid using dex cache array pointers in libart.\""
    },
    {
      "commit": "c136312832d4be25db2ecc5673967d71d0ad4b9c",
      "tree": "b9cdcccdd947632b2031ae2b4c3a9c3658ef3366",
      "parents": [
        "1576be32be4a99a1cffdaaf209a3cd67e8b2f88a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 09 14:13:13 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 10 18:46:03 2015 +0100"
      },
      "message": "Avoid using dex cache array pointers in libart.\n\nIn preparation for making dex cache arrays native, avoid\nusing them in Java code.\n\nThis causes a performance regression for our reflection\nbenchmarks. Class_getDeclaredMethod and Class_getMethod\ntake an up to 30% hit, measured using the Quick compiler.\nWe accept this hit at this stage and we will tune the\nperformance after we\u0027re done with the larger effort.\n\nCompanion libcore/ change:\n    https://android-review.googlesource.com/146069\n\nBug: 20134538\nChange-Id: Ibbef3b50043a1311cd40723ed42e1f1c609b8fc1\n"
    },
    {
      "commit": "d80e93d3046e1d578835ddbb1f509376512151e4",
      "tree": "c8b8231eafa019d102891e9385acd96f6d2be595",
      "parents": [
        "6daa9efe959b631d063eeb8d715a740c279f6c57",
        "b536247b1ce5de640eec81dddac47802cd074363"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 10 08:37:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 08:37:01 2015 +0000"
      },
      "message": "Merge \"Extend the DWARF library to support .debug_info section.\""
    },
    {
      "commit": "b536247b1ce5de640eec81dddac47802cd074363",
      "tree": "22568fd953bfc92deb3378c3d5b31fb04b9948cc",
      "parents": [
        "8b3c1b6526ff6b44dd724826b8e9e6d0a2067f6e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 08 19:37:39 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 09 23:55:05 2015 +0100"
      },
      "message": "Extend the DWARF library to support .debug_info section.\n\nChange-Id: I9916abd8db227e7a73a3311294e675be5222a709\n"
    },
    {
      "commit": "d0ad2eea51850ed5972c23d03380b2305cdf7cb7",
      "tree": "533baced17c6dc3860e0e2121ce06acde57b8f4d",
      "parents": [
        "917f0866f66d3465fa41ddcf9ab09eba2fa78dd3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 14:59:59 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 09 15:18:14 2015 -0700"
      },
      "message": "Add support for nested method verifiers\n\nCan occur in the following scenario:\nMethodVerifier::Verify -\u003e MethodVerifier::GetStaticField -\u003e\nResolveFieldJLS -\u003e  ThrowNoSuchFieldError -\u003e EnsureInitialized -\u003e\nVerifyClass\n\nAlso fixed another case where we can be requested to dump for ANR\nwhile we are suspended in one of the AllowSuspension points.\n\nBug: 20140397\n\nChange-Id: Ib17f6b98954caa5d1ea1c1dcde66091cc6d11c25\n"
    },
    {
      "commit": "4ab74e8b26b8f860f6c39f04ed0a5830bf9823d4",
      "tree": "83093bcdb55e1f48f1bbe97a795934693d258ac7",
      "parents": [
        "b33b6502523d67180ce7e8044714d1e85dcabfa9",
        "3f5881fda3606b27e30bf903052c73b03910f90b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 09 17:15:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 17:15:23 2015 +0000"
      },
      "message": "Merge \"ART: IRT refactor\""
    },
    {
      "commit": "3f5881fda3606b27e30bf903052c73b03910f90b",
      "tree": "0c60e00a3923d47658e2d224997ab2742c113877",
      "parents": [
        "1576be32be4a99a1cffdaaf209a3cd67e8b2f88a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 08 10:26:16 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 09 09:09:11 2015 -0700"
      },
      "message": "ART: IRT refactor\n\nIRT creation might fail. Add a path that allows to bypass the aborts\nand instead signal validity. Hide this path with a private constructor,\nrewrite users to use a static Create method.\n\nBug: 20110201\n\nChange-Id: I440499c3372cd7557eb970b70ce2c4543da520e4\n"
    },
    {
      "commit": "23cedd20e76bdbbdaa3f44a1b83f30698d04fa3f",
      "tree": "2d295c98c0cc6eadcc7bda2cd9f891cc1f249b20",
      "parents": [
        "a528e850b0444419e709e4151c992efafcf512fe"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Apr 08 13:17:29 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Apr 09 08:56:05 2015 -0700"
      },
      "message": "Test DexOptStatus enum values match DexFile values.\n\nChange-Id: Id480fa3f273ff0ce3ec806749f26bfb5a995bc4a\n"
    },
    {
      "commit": "a528e850b0444419e709e4151c992efafcf512fe",
      "tree": "3909748be4b2da46b815558531b9aa0b12a63ac9",
      "parents": [
        "96159860fc6c4bf68a51a8a57941971f122685d6",
        "95abd04d211470ea4b9b9191b96dd0f32e7ce3a4"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Apr 09 14:13:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 14:13:30 2015 +0000"
      },
      "message": "Merge \"Rename isDexOptNeededInternal and add kSelfPatchOatNeeded\""
    },
    {
      "commit": "a2d40be3e64b339c6c39d59655507c597251e506",
      "tree": "011137a2bb46a6bc56e9b47c0e5c9d7978aa8ace",
      "parents": [
        "9d0ab6f0a2f08c3fa9a59e0b8742cf366d7d0feb",
        "4e5b20863898006ec6c9d120cda167d38dda6e60"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 08 16:42:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 16:42:39 2015 +0000"
      },
      "message": "Merge \"Fix JDWP race at runtime shutdown\""
    },
    {
      "commit": "605e014b3512cdd7c766660f88b30d458693bcce",
      "tree": "331fc58f5f12216b6862a1305e1fd4c8cd25d168",
      "parents": [
        "0e88d7267c58c8449e8216aabe429b22ed5d9e43",
        "ca068b2385ba160367d1e7fd123317b851b99390"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 08 08:49:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 08:49:19 2015 +0000"
      },
      "message": "Merge \"Ignore not yet loaded classes during hprof\""
    },
    {
      "commit": "40f65560b5ecd79aeaadc16b03834d11aea1e0a5",
      "tree": "b93fb2f045a4f47f8b6e3c8541a07781dcce2c77",
      "parents": [
        "d2b9c0ca73a01cc31482a54cbcae1b3ac85379b8",
        "3c54b0023fca579aae006dfa607fb14de5846c42"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 08 00:37:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 08 00:37:25 2015 +0000"
      },
      "message": "Merge \"ART: Fix 64-bit ELF file support\""
    },
    {
      "commit": "3c54b0023fca579aae006dfa607fb14de5846c42",
      "tree": "7b996231875fdfd54855a9aa86fe2494cdee1ec5",
      "parents": [
        "425ee0e1103b52bb72132df64f503725d1a15300"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 16:09:30 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 16:43:08 2015 -0700"
      },
      "message": "ART: Fix 64-bit ELF file support\n\nThe API wasn\u0027t cross-compile-safe, 32-bit patchoat would fail for\nnegative delta applied to a 64-bit ELF file.\n\nAdd 64-bit ELF file output to the compilers, behind a flag, currently\noff by default (preserving current behavior).\n\nBug: 20095017\nChange-Id: I2cde7b4c7cc83413c76692d7b745868d644a604c\n"
    },
    {
      "commit": "4809d0a8a5fca85a67dd0588ead5dfbd0f1acf96",
      "tree": "12853aa2c6a6238cac7c66b5d5610735a2f31591",
      "parents": [
        "63a99fce3ceac3c9de1f47b88a75094e3e1ffba3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 07 10:39:04 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 07 10:42:46 2015 -0700"
      },
      "message": "Fix CC root visiting bug\n\nAlso some cleanup.\n\nChange-Id: Ia3de8f2d409770be3619ec116e8b06ecd82338fe\n"
    },
    {
      "commit": "d8750647949f0f24c28bd55781f72055b5486c43",
      "tree": "881e9a60f73a65c9c0a1e18142c350d7d9fdcc0b",
      "parents": [
        "71ae88325ae0af5508c6470b353096184cbcc728"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 09:51:52 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 09:51:52 2015 -0700"
      },
      "message": "ART: Remove unused variables.\n\nCurious that neither Clang nor GCC flagged those.\n\nChange-Id: Ie1866d8171651c768e378d829a669cc57cab1f09\n"
    },
    {
      "commit": "9b87d4a2f96bf935640f67b66d7d4cce867ceece",
      "tree": "305b448ca47d180c8c63e580a574d7cb70af126f",
      "parents": [
        "caff30245889729f102af87e79705893401251ef",
        "2c3e77a0b91b2225fcdd3b34d8a734b85eec0579"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 07 15:16:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 15:16:13 2015 +0000"
      },
      "message": "Merge \"JDWP: clear exception when allocation fails\""
    },
    {
      "commit": "ca068b2385ba160367d1e7fd123317b851b99390",
      "tree": "7a8c20069c3d3bae136d6760b52be5b6c4dc7daf",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 07 10:28:53 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 07 10:55:26 2015 +0200"
      },
      "message": "Ignore not yet loaded classes during hprof\n\nSkips classes that are no yet loaded because we cannot access its\nfields nor its superclass. This CL fixes a crash observed during the\nrun-test 130-hprof.\n\nBug: 20040824\nChange-Id: Ia618b6c1579d35dfd726726ca6d2ff4258d8a841\n"
    },
    {
      "commit": "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5",
      "tree": "d19be27aa54de2899521a413f9eb4e22f8b2803d",
      "parents": [
        "e291f096a6b2b80e4eb76026b46c637b773d7ef1",
        "48cc32c05efaaba5d97e1b83a9f9d8172a8ca352"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 03:00:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 03:00:11 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Fix noreturn for Mac\"\""
    },
    {
      "commit": "48cc32c05efaaba5d97e1b83a9f9d8172a8ca352",
      "tree": "26cf799de71e10af1b3c2419b4d16244d793e73c",
      "parents": [
        "79dda4251d7e3a7888e326bc7a3f069d6190d194"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 02:53:04 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 02:53:04 2015 +0000"
      },
      "message": "Revert \"ART: Fix noreturn for Mac\"\n\nmissing-noreturn was turned off for Mac for all the\nother similar warnings. Restore the cleaner header\nfile.\n\nThis reverts commit 79dda4251d7e3a7888e326bc7a3f069d6190d194.\n\nChange-Id: Ia25a47533ff7848ad96e0d76e7f0ea768a48f946\n"
    },
    {
      "commit": "81a654301734aebf06d29d84993cbc52655020bc",
      "tree": "69a4739e30d7807fdff4cd38e24adbc4f592e06b",
      "parents": [
        "a9aabfebc13a0820b2b69d2d3b7ce10a0564289d",
        "24a05f449a6b4b0e4944c2055f0c7490d6a09861"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 01:07:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 01:07:32 2015 +0000"
      },
      "message": "Merge \"ART: Add support for \"silvermont\" variant\""
    },
    {
      "commit": "a9aabfebc13a0820b2b69d2d3b7ce10a0564289d",
      "tree": "be576999d6320674e80e538c2eb0ee79cca45ad7",
      "parents": [
        "084403f7a09e0bf51288ca4acba76b0a4199956c",
        "79dda4251d7e3a7888e326bc7a3f069d6190d194"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 07 00:22:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 00:22:38 2015 +0000"
      },
      "message": "Merge \"ART: Fix noreturn for Mac\""
    },
    {
      "commit": "79dda4251d7e3a7888e326bc7a3f069d6190d194",
      "tree": "85124678fed07a139869d66d37998a9f876dda3f",
      "parents": [
        "fb9131bd25b5a90e49da5e0f44b23e106558e7e0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 17:17:34 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 17:20:45 2015 -0700"
      },
      "message": "ART: Fix noreturn for Mac\n\nChange-Id: I59b60340a90672a4de4d3bdf092fa504394d5892\n"
    },
    {
      "commit": "084403f7a09e0bf51288ca4acba76b0a4199956c",
      "tree": "8bb6b7ce4777e5f6b8ec9d212bc39f342bdcc4ff",
      "parents": [
        "425ee0e1103b52bb72132df64f503725d1a15300",
        "720e71af6c5f92fbcddd0cff5b94d02366b74f89"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 07 00:13:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 07 00:13:31 2015 +0000"
      },
      "message": "Merge \"Add more logging for debugging possible deadlock\""
    },
    {
      "commit": "720e71af6c5f92fbcddd0cff5b94d02366b74f89",
      "tree": "6b074a6dea66c80a0bf94cbffcbca8de9ec0102a",
      "parents": [
        "e8aae00fa400efbb8f998a5dbf68eb42810889c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 06 17:10:58 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 06 17:10:58 2015 -0700"
      },
      "message": "Add more logging for debugging possible deadlock\n\nChange-Id: I4b2db54504d3ed8c2c33a110191488cab1fcb2d9\n"
    },
    {
      "commit": "75c40d419b621342ac834e5b61abcdcd84537063",
      "tree": "2066ed8e4c6bad6221d2512132444696bdde89b1",
      "parents": [
        "9104503b4053231d518c3e796033ee01f02bcdf1"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Apr 03 15:45:21 2015 +0200"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 15:43:02 2015 -0700"
      },
      "message": "Fix JNI compiler for mips64\n\nFix assembly instructions in JNI stub to store the right size. Fix\ncallee-saves in JNI calling convention to reflect return registers.\nFix pointer size in mips64 assembler.\n\nChange-Id: I4eccd1f56f62fa9119918192ec424e9073398bc7\n"
    },
    {
      "commit": "017d16cb8fd2b1f1c8aadd326fca700ea7d043dc",
      "tree": "26cf799de71e10af1b3c2419b4d16244d793e73c",
      "parents": [
        "69958562959dbd772a1bac02e2838dbe79995d58"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:40:36 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:40:36 2015 -0700"
      },
      "message": "ART: Make unknown variant \"mips64r6\" go away\n\nIt\u0027s the standard variant, accept it just like \"default.\"\n\nChange-Id: I9b600345e3e1ebfb508ffe22ddde17757be2172e\n"
    },
    {
      "commit": "65b798ea10dd716c1bb3dda029f9bf255435af72",
      "tree": "774e9901b6917989a63f07f927c3b4d8b921a013",
      "parents": [
        "c411c6cc327d3f2b3b4d1987b07dd442205d9454"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 09:35:22 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:05:07 2015 -0700"
      },
      "message": "ART: Enable more Clang warnings\n\nChange-Id: Ie6aba02f4223b1de02530e1515c63505f37e184c\n"
    },
    {
      "commit": "758a801b66c134361a7b43f7e83f85d1fb800c4c",
      "tree": "35b060c780fcf6e7c268fec47df40c74b5ab8b05",
      "parents": [
        "e8aae00fa400efbb8f998a5dbf68eb42810889c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 21:28:42 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 14:03:17 2015 -0700"
      },
      "message": "ART: Enable Clang\u0027s -Wdeprecated\n\nReplace throw() with noexcept.\n\nAdd default copy constructors and copy assignment constructors for\ncases with destructors, as the implicit definition is deprecated.\n\nChange-Id: Ice306a3f510b072b00bec4d4360f7c8055135c9d\n"
    },
    {
      "commit": "e8aae00fa400efbb8f998a5dbf68eb42810889c1",
      "tree": "f14ec179e84f7b122fadd6e4abaf066d1843634a",
      "parents": [
        "81aedc7b2f2e8b990d74d6dfa5303ab2447327a1",
        "ca71458862be8505330b7fd5649a062f31d143dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 20:36:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 20:36:03 2015 +0000"
      },
      "message": "Merge \"ART: Add Clang\u0027s -Wused-but-marked-unused\""
    },
    {
      "commit": "bb87e0f1a52de656bc77cb01cb887e51a0e5198b",
      "tree": "113f014c6e20fab3e936a3ac05f9f738639541f6",
      "parents": [
        "e57fc0f0260fcb1d08cbb720ec95c04c0f394b91"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 11:21:55 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 06 10:44:37 2015 -0700"
      },
      "message": "Refactor and improve GC root handling\n\nChanged GcRoot to use compressed references. Changed root visiting to\nuse virtual functions instead of function pointers. Changed root visting\ninterface to be an array of roots instead of a single root at a time.\nAdded buffered root marking helper to avoid dispatch overhead.\n\nRoot marking seems a bit faster on EvaluateAndApplyChanges due to batch\nmarking. Pause times unaffected.\n\nMips64 is untested but might work, maybe.\n\nBefore:\nMarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us\n\nAfter:\nMarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us\n\nBug: 19264997\n\nChange-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca\n"
    },
    {
      "commit": "ca71458862be8505330b7fd5649a062f31d143dc",
      "tree": "7bc749056ab65906a147cc8e1d92e8be3ffea2cc",
      "parents": [
        "9d231cc422b7b32d00bd43ca6993b2dd7e9989ea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 19:41:34 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 20:14:40 2015 -0700"
      },
      "message": "ART: Add Clang\u0027s -Wused-but-marked-unused\n\nAdd detection of wrong unused annotations. Fix our codebase.\n\nChange-Id: I85cc20f2eac71c1ec6c5c7cd6efb08454a629634\n"
    },
    {
      "commit": "de194bfbb212e3cb6d09e1129cbcf41872268a52",
      "tree": "fbb56153d0c7081357caed39c6e034b8b0ba0e46",
      "parents": [
        "9c53fa5adb33fb853c6a8b70bacbae1e5a3218aa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 19:08:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 19:08:40 2015 -0700"
      },
      "message": "Delete missed ClampGrowthLimit CHECK\n\nBug: 20043461\nChange-Id: If4a0bb91c64571945756151be162f3626534781c\n"
    },
    {
      "commit": "9c53fa5adb33fb853c6a8b70bacbae1e5a3218aa",
      "tree": "ec8edafb7a098e601ab24c545b60f402445fd8c8",
      "parents": [
        "9ba48cef58e71f6a61b346d83c69c6372ede6b77",
        "2f0751ea75e5f093d9ce7b8587e65a2ca3de0855"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 21:42:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 21:42:06 2015 +0000"
      },
      "message": "Merge \"ART: Turn of native stack dump on x86 on-device\""
    },
    {
      "commit": "2f0751ea75e5f093d9ce7b8587e65a2ca3de0855",
      "tree": "df99d69761aa9c5ace190f4970c0952009c1713d",
      "parents": [
        "698385411e5db8c7ac9bd4471f152b8c6ea7f7bf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 14:36:07 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 14:36:07 2015 -0700"
      },
      "message": "ART: Turn of native stack dump on x86 on-device\n\nTemporary workaround for bug.\n\nBug: 20040863\nChange-Id: Ifdde68c66b94ebc2f13c7983f38700c8bcf41559\n"
    },
    {
      "commit": "24a05f449a6b4b0e4944c2055f0c7490d6a09861",
      "tree": "6d05d580ae522e858a28b9d6c62b9ac9095548dd",
      "parents": [
        "425587d25832145a45a0b76beaa93996b0226f0d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 13:46:54 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 14:22:56 2015 -0700"
      },
      "message": "ART: Add support for \"silvermont\" variant\n\nThe variant is already supported in the build system and wired up\nfor the Nexus Player (fugu). The values are copied from the build\nsystem and correspond to documentation in, e.g.,\nhttp://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf\nchapter 15, section 1.1.\n\nChange-Id: I9facaa9d5b8bae3d98cf48f2969d02d11ebfe0e4\n"
    },
    {
      "commit": "9ba48cef58e71f6a61b346d83c69c6372ede6b77",
      "tree": "aa81defca9c6cc2c736e9b19e477240d18867225",
      "parents": [
        "425587d25832145a45a0b76beaa93996b0226f0d",
        "02d2f290380c6aeff5f5a089ee38fa5d55e46130"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "message": "Merge \"Fix the read barrier builds.\""
    },
    {
      "commit": "02d2f290380c6aeff5f5a089ee38fa5d55e46130",
      "tree": "7a1e2bd74768db29f25b087e2120fb4c61897da5",
      "parents": [
        "1f940310658cd5a15e12305463fb6d2d508bbd26"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "message": "Fix the read barrier builds.\n\nA check failure (!UseJit() in ArtMethod::Invoke()) in forced interpret\nonly mode in the eng build with JIT enabled by default on target.\n\nA build failure (inl header file issues) in the USE_BAKER_READ_BARRIER\nbuild.\n\nChange-Id: Ib13632b10864ad8b4691b66971c0ab5d2ae1e675\n"
    },
    {
      "commit": "95abd04d211470ea4b9b9191b96dd0f32e7ce3a4",
      "tree": "68d61705d30c6ea5ebd1b4d2f8306f32c01aecb5",
      "parents": [
        "425587d25832145a45a0b76beaa93996b0226f0d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 24 09:51:28 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Apr 03 13:10:30 2015 -0700"
      },
      "message": "Rename isDexOptNeededInternal and add kSelfPatchOatNeeded\n\nThis change renames isDexOptNeededInternal to getDexOptNeeded and adds\nanother possible result: kSelfPatchOatNeeded. kSelfPatchOatNeeded is\nreturned when there is no odex file to relocate from but there is an\noat file that can be relocated in place.\n\nChange-Id: Ib9a6373f98474f1242367b5285086251a9d580e5\n"
    },
    {
      "commit": "425587d25832145a45a0b76beaa93996b0226f0d",
      "tree": "770d01feeb79e93f9d54d7363b58ce1316356f6d",
      "parents": [
        "73eaf9b7a56c5d1d54e10bcbc7958c89b0c98424",
        "45b1597c152af90f6d5792d02b64fd4e7c81ac9d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 18:12:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 18:12:22 2015 +0000"
      },
      "message": "Merge \"Use va_list argument to abort transaction\""
    },
    {
      "commit": "b2d4768e4adc6d880d2e17c5cf4293639c8adab7",
      "tree": "90fbeac8abf73fb9c15be0d89bc01d2572b69626",
      "parents": [
        "698385411e5db8c7ac9bd4471f152b8c6ea7f7bf",
        "07b3c2351bb527ea91c084dc19434600af9ae66b"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Apr 03 17:47:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 17:49:53 2015 +0000"
      },
      "message": "Merge \"Store OatDexFile instead of OatFile in DexFile.\""
    },
    {
      "commit": "2c18b956e9b501cc21af6c1a1c20baba2f635a32",
      "tree": "6cd3472b8a2c91a03053f0a215d4c819bcd5faf7",
      "parents": [
        "784192aae0bffcdd8700351620c1bfb2cb6b5547",
        "9415886d879a7459ee9a3c6613f1a2687c87f08a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 16:48:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 16:48:26 2015 +0000"
      },
      "message": "Merge \"ART: Avoid obvious segfault in arm \u0026 x86 fault handler\""
    },
    {
      "commit": "45b1597c152af90f6d5792d02b64fd4e7c81ac9d",
      "tree": "3cbb498c91067657169e4ee2aaba9cbf286e3788",
      "parents": [
        "d43f160dc294655885a2c273307d34585c4ce97b"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 16:07:05 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 16:27:19 2015 +0200"
      },
      "message": "Use va_list argument to abort transaction\n\nCreates AbortTransactionV taking a va_list argument and renames\nAbortTransaction to AbortTransactionF which calls AbortTransactionV.\n\nThis fixes the compiler_driver_test under valgrind.\n\nChange-Id: Ia1c57330091c055ae9e46585a944ce0b78864920\n"
    },
    {
      "commit": "9415886d879a7459ee9a3c6613f1a2687c87f08a",
      "tree": "952b7416c50261309e78a6ae853f2536271a6357",
      "parents": [
        "a68a7cf8f3a6fef22d71a14350176115cb13857f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 02:17:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 02:23:35 2015 -0700"
      },
      "message": "ART: Avoid obvious segfault in arm \u0026 x86 fault handler\n\nThese handlers need to read an instruction to determine where to\nlook for info. Don\u0027t try to read from pc\u003d0.\n\nBug: 20040863\nChange-Id: I38b56dc6dd806df22e608ee8d46c4091a738e4bc\n"
    },
    {
      "commit": "64db239fdb45fcfc41b7a85220894d3e20fabcd5",
      "tree": "e75dc227486dd87f49a2ca3283437b1e5b4e374b",
      "parents": [
        "ae36b4a8d05525c977af831f1b31126d84159e4f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Apr 02 09:09:04 2015 +0000"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 09:52:02 2015 +0200"
      },
      "message": "Revert \"ART: Workaround for b/20019689\"\n\nThis reverts commit 328dd4457632f59e67d08d9d086670b56141a4b1.\n\nBug: 20019689\nChange-Id: Ia1087e45d1a1817b6ff4e45f8d74b84d34f078ee\n"
    },
    {
      "commit": "ae36b4a8d05525c977af831f1b31126d84159e4f",
      "tree": "1b474b0bdec9db773cab0a2bca70dce1452f7cd1",
      "parents": [
        "a68a7cf8f3a6fef22d71a14350176115cb13857f",
        "2fd7e69505195cda4caaa3161aaf37315552a698"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 07:49:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 07:49:46 2015 +0000"
      },
      "message": "Merge \"Use specific exception class to abort transaction\""
    },
    {
      "commit": "2fd7e69505195cda4caaa3161aaf37315552a698",
      "tree": "2bd681443ad36a8616f237a12e56ecbdb7054f8e",
      "parents": [
        "c6e949a6d93fae2351fc59ed825657adee8185dc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Apr 02 11:11:19 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 09:31:59 2015 +0200"
      },
      "message": "Use specific exception class to abort transaction\n\nWe used to throw a java.lang.InternalError when aborting a\ntransaction (when preinitializing image classes at compilation time).\n\nWe now use dedicated class dalvik.system.TransactionAbortError that\nis only thrown by the compiler to abort a transaction. This class has\nconstructors taking a java.lang.Throwable \"cause\" so we can wrap\nexceptions causing the transaction to abort (for instance class\njava.lang.ClassNotFoundException) and give more information about the\ncause of the transaction abort.\n\nBug: 20019689\nChange-Id: I019a72a1c754d8bba6a7ad6bb0f02e4fd6668622\n"
    },
    {
      "commit": "a68a7cf8f3a6fef22d71a14350176115cb13857f",
      "tree": "dc3c80012c1bf13b68341e5ecf6c06684b7594f7",
      "parents": [
        "fc2b49a544613a6cfc2328cde30eb1ec3c1a37c5",
        "f6a780abeaed4bf745720e8f836a3064d3ffbec4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 02:03:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 02:03:35 2015 +0000"
      },
      "message": "Merge \"ART: Move trace options to a struct\""
    },
    {
      "commit": "f6a780abeaed4bf745720e8f836a3064d3ffbec4",
      "tree": "0850cde8f2200f893a374610090be5b8326ecf83",
      "parents": [
        "93c65adb3d7bd1d3815715df433d185219045230"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "message": "ART: Move trace options to a struct\n\nBundles the different options and moves them to a struct in the\nimplementation file. Will allow for easier change for streaming.\n\nChange-Id: I486e0942614e714964eb233e2d6b4e3e12aa704f\n"
    },
    {
      "commit": "97597c9be7f4eb5263a80e7de4684dbfa1427e9a",
      "tree": "690dc04c72690a056aa84ac0206f96e5f513b3c2",
      "parents": [
        "7775d2c1e48c0bb0880f720f3dfbd4b4d0de7c6e",
        "fb8d279bc011b31d0765dc7ca59afea324fd0d0c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 23:10:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 23:10:46 2015 +0000"
      },
      "message": "Merge \"[optimizing] Implement x86/x86_64 math intrinsics\""
    },
    {
      "commit": "9a5df52b902b24dbf2d7cee88a1610b90a8e1c08",
      "tree": "c5e441facbfe341b6c8c37cc01067aa50d6ca4f2",
      "parents": [
        "f9492310913a09f7c63ca2c8cc948b731adf150a",
        "ddac42329314587f6f188bacf101b3cb15175b3c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 02 18:11:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 18:11:02 2015 +0000"
      },
      "message": "Merge \"Fix race with Heap::ClampGrowthLimit and GC\""
    },
    {
      "commit": "ddac42329314587f6f188bacf101b3cb15175b3c",
      "tree": "f0774ef2055a059ba820d3dc153a8b9f3dc41900",
      "parents": [
        "e4285226d1d4d7c4feee16a968540fb2e363339f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 02 10:08:03 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 02 11:09:34 2015 -0700"
      },
      "message": "Fix race with Heap::ClampGrowthLimit and GC\n\nAded logic for handling the temp bitmap if the GC is running and\nthe live bitmap is clamped to the mark bitmap. This fixes the SIGABRT\nfrom ClampGrowthLimit if the GC clamped the bitmaps at this point.\n\nAlso added locking of the heap_bitmap_lock_ so that added a lock so\nthat the temp bitmap doesn\u0027t change from underneath us.\n\nBug: 20043461\n\nChange-Id: Ib427e40bcdf149de0408b4b53e6524f51463f0af\n"
    },
    {
      "commit": "07b3c2351bb527ea91c084dc19434600af9ae66b",
      "tree": "b286122b660ce16abae1e56c57b957b8c69c9531",
      "parents": [
        "dcff612c3a6e1427749771c4559f198fa480f709"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 31 15:57:54 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Apr 02 09:47:03 2015 -0700"
      },
      "message": "Store OatDexFile instead of OatFile in DexFile.\n\nThis requires moving OatDexFile out of the OatFile class so that\na forward class declaration can be used for OatDexFile.\n\nBug: 19071355\nChange-Id: Ibda85b78d0577e9e81073090616fc0f2fa526be3\n"
    },
    {
      "commit": "2c3e77a0b91b2225fcdd3b34d8a734b85eec0579",
      "tree": "e963fb08cd1072cb78e448334582c95d37e1f95c",
      "parents": [
        "c6e949a6d93fae2351fc59ed825657adee8185dc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Apr 02 16:26:48 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Apr 02 16:51:24 2015 +0200"
      },
      "message": "JDWP: clear exception when allocation fails\n\nClears pending exception if an allocation (requested by the debugger)\nfails and logs an error message about the failure.\n\nChecks we never leave a pending exception after processing a JDWP\nrequest.\n\nBug: 20037531\nChange-Id: I63239034a3c1ab368b0e19c2f5f756d9e2ec6a29\n"
    },
    {
      "commit": "e8a339e5058962805c2b428fedb1d6ede5aeb501",
      "tree": "9588a6013e17994888bafc216154d786c0e22d51",
      "parents": [
        "fc67542a93be3381f9c6cf226a6c5a6f30ed6e82",
        "6f7158927fee233255f8e96719c374694b10cad3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 02 14:12:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 02 14:12:03 2015 +0000"
      },
      "message": "Merge \"Write .debug_line section using the new DWARF library.\""
    },
    {
      "commit": "b4524fd56c098c4de4d80e05136d9583eac64c76",
      "tree": "e8de13b3fb5f240538bbbf139f34f5c8d7896076",
      "parents": [
        "e4285226d1d4d7c4feee16a968540fb2e363339f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Apr 02 00:04:09 2015 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Apr 02 00:04:09 2015 -0700"
      },
      "message": "Switch to shared libcutils on host to fix odr-violation\n\nChange-Id: Ia8eb950806a09e12fec2956d51eff99852920bee\nSUMMARY: AddressSanitizer: odr-violation: global atrace_is_ready at system/core/libcutils/trace-host.c:23:25\n"
    },
    {
      "commit": "e4285226d1d4d7c4feee16a968540fb2e363339f",
      "tree": "835b91c05b39cdb1053c2cd28e0e23c202dc020b",
      "parents": [
        "79bdb47d8c87ca3ee7da4aa2ca56105728257a32",
        "d43b3ac88cd46b8815890188c9c2b9a3f1564648"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 23:15:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 23:15:53 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Deoptimization-based bce.\"\"\""
    },
    {
      "commit": "aacc25d54c3224cd9e26fdabe6c8444f5443b350",
      "tree": "2d989997b59c6650d2e85876f3e2d0ce1d1a4275",
      "parents": [
        "a703a7280a5081dd4e6f7e0d3860748f8a29965e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 01 14:49:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 01 14:49:06 2015 -0700"
      },
      "message": "ART: Fix unstarted runtime\n\nCorrectly delete local refs for dex/direct-byte-buffer.\n\nChange-Id: Ia74dfafb959d69aa281af7316f393997e053a3b3\n"
    },
    {
      "commit": "328dd4457632f59e67d08d9d086670b56141a4b1",
      "tree": "ff605c0cc1ac599aa938557e5dee4a94daaf36fb",
      "parents": [
        "a25b5fec56e065d33f6827bde1e51fc47b1f3aee"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 01 14:28:09 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 01 14:28:09 2015 -0700"
      },
      "message": "ART: Workaround for b/20019689\n\nDon\u0027t throw InternalError as wrapped for now, swallowing the\noriginal exception.\n\nBug: 20019689\nChange-Id: I77a56262304b09b326232bee0c7916bb73401d74\n"
    },
    {
      "commit": "d43b3ac88cd46b8815890188c9c2b9a3f1564648",
      "tree": "6c599c3f40d57e92786bd7f41c0541d9eaa2643b",
      "parents": [
        "a109632b240f3c9355ca95500f6f48e4478e3c51"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 14:03:04 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 01 14:05:13 2015 -0700"
      },
      "message": "Revert \"Revert \"Deoptimization-based bce.\"\"\n\nThis reverts commit 0ba627337274ccfb8c9cb9bf23fffb1e1b9d1430.\n\nChange-Id: I1ca10d15bbb49897a0cf541ab160431ec180a006\n"
    },
    {
      "commit": "a25b5fec56e065d33f6827bde1e51fc47b1f3aee",
      "tree": "7b97aaaa37ddc6db9d366e46d03a972bc6eb96eb",
      "parents": [
        "664e46167b12d2bf44fe530a94570f053bf15f91",
        "9106e52a47042043edfb2a0fea05f28d52903c47"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 01 19:50:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 01 19:50:16 2015 +0000"
      },
      "message": "Merge \"ART: Set default prune counter to 10\""
    },
    {
      "commit": "fb8d279bc011b31d0765dc7ca59afea324fd0d0c",
      "tree": "01b21964ce0516bda835faa15b260ac290714fe0",
      "parents": [
        "dcff612c3a6e1427749771c4559f198fa480f709"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Mar 31 22:16:59 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Apr 01 08:45:38 2015 -0400"
      },
      "message": "[optimizing] Implement x86/x86_64 math intrinsics\n\nImplement floor/ceil/round/RoundFloat on x86 and x86_64.\nImplement RoundDouble on x86_64.\n\nAdd support for roundss and roundsd on both architectures.  Support them\nin the disassembler as well.\n\nAdd the instruction set features for x86, as the \u0027round\u0027 instruction is\nonly supported if SSE4.1 is supported.\n\nFix the tests to handle the addition of passing the instruction set\nfeatures to x86 and x86_64.\n\nAdd assembler tests for roundsd and roundss to x86_64 assembler tests.\n\nChange-Id: I9742d5930befb0bbc23f3d6c83ce0183ed9fe04f\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "6f7158927fee233255f8e96719c374694b10cad3",
      "tree": "518cef41f4cd9c3119879eb463aa4b67af5f6ff8",
      "parents": [
        "ef3456f872539df65c4c88ca346713f74366d803"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 30 14:21:42 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 01 12:57:10 2015 +0100"
      },
      "message": "Write .debug_line section using the new DWARF library.\n\nAlso simplify dex to java mapping and handle mapping\nin prologues and epilogues.\n\nChange-Id: I410f06024580f2a8788f2c93fe9bca132805029a\n"
    },
    {
      "commit": "4e5b20863898006ec6c9d120cda167d38dda6e60",
      "tree": "8cb7e98c87a4e48e6237fd2c172ae39f5b7f5a76",
      "parents": [
        "04914da1385564fca1990863d9a2690af10e1946"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 24 19:03:40 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 01 12:22:52 2015 +0200"
      },
      "message": "Fix JDWP race at runtime shutdown\n\nWhen the runtime shuts down, it closes the JDWP connection with the\ndebugger. However, if a JDWP command is still being processed by the\nJDWP handler thread when we close the connection, we won\u0027t be able to\nsend its reply.\n\nBug: 19628620\nChange-Id: I20301325a347d66f3b9ef95ebe8f156abafb1f76\n"
    },
    {
      "commit": "9106e52a47042043edfb2a0fea05f28d52903c47",
      "tree": "f0b9980d0f6de6b73c734afc47b50c6bd3d8173b",
      "parents": [
        "dcff612c3a6e1427749771c4559f198fa480f709"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 14:54:03 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 17:42:52 2015 -0700"
      },
      "message": "ART: Set default prune counter to 10\n\nBy default, prune cache at boot after ten failed boots.\n\nBug: 19983101\nChange-Id: Ib88f807e0082d71292c14c7af38e02cca5a5602c\n"
    },
    {
      "commit": "faed9950572632ffaac69e70c0b1ab90496c98f3",
      "tree": "a8f6f50c35520957188958952fa17935f2624dc6",
      "parents": [
        "bf143069fc5b7526ea79d4283293878a2ebe99ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 16:28:53 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 16:29:46 2015 -0700"
      },
      "message": "Only GC the first time we call PreZygoteFork\n\nPreZygoteFork is called for every app launch, it is overkill to GC\neach time since it takes 20-30ms and blocks app launch for that long.\n\nChange-Id: I647c8ccca767ceca67a006c1d80a739c7860f0d0\n"
    },
    {
      "commit": "bf143069fc5b7526ea79d4283293878a2ebe99ee",
      "tree": "4692631472d1a112fbee2ca7a0c94708b46cce84",
      "parents": [
        "38d3b133dcb5968a69ffbcda58990fcdca5b56a1",
        "461687d898dfd91253f242072849a9fe43e5f523"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 23:20:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 23:20:41 2015 +0000"
      },
      "message": "Merge \"Visit image roots for hprof\""
    },
    {
      "commit": "461687d898dfd91253f242072849a9fe43e5f523",
      "tree": "452e3e11cb5746f487920f87fcaf1b238d2a8957",
      "parents": [
        "e33d0cb5b88703302e3912ca96dabcb06fea4340"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 12:05:24 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 15:57:27 2015 -0700"
      },
      "message": "Visit image roots for hprof\n\nBug: 19995360\n\n(cherry picked from commit 0cab5e68f14ee403380664146db6dc7ddfc32064)\n\nChange-Id: I17868bff2a701dc25291d41b9732c6b86f92be08\n"
    },
    {
      "commit": "f93c6fe65c4c5e601cce467e87bbe71a87c5bac0",
      "tree": "cc80db464fa34c9b10e5f3fceee8596c0fe68a36",
      "parents": [
        "1f940310658cd5a15e12305463fb6d2d508bbd26",
        "20f85597828194c12be10d3a927999def066555e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 18:48:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 18:48:29 2015 +0000"
      },
      "message": "Merge \"Fixed layout for dex caches in boot image.\""
    },
    {
      "commit": "dcff612c3a6e1427749771c4559f198fa480f709",
      "tree": "bb918291617150ab701b235795e9209ea6f1144e",
      "parents": [
        "3ebee94b7b3af89e7cd470ab70013ac0505d2de4",
        "15c1975f5fa5ae646ae87b57394bfdae1090a236"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 31 16:42:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 16:42:31 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add small library for writing of DWARF data.\"\"\""
    },
    {
      "commit": "2910e15a5c67821c935e310ca51772d82095def2",
      "tree": "45ee30790bb879e67b859d04937f4f4e151ab484",
      "parents": [
        "ebbb1e322d8c89e69424a543faa03402e5b63673",
        "3efe979d4292330c8fab1708a4361e58681a88cb"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 31 15:29:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 15:29:23 2015 +0000"
      },
      "message": "Merge \"Fix oat_file_assistant_test\u0027s ReserveImageSpace().\""
    },
    {
      "commit": "15c1975f5fa5ae646ae87b57394bfdae1090a236",
      "tree": "6f43d273a55a01b3e556f2c48e5e0ac13e7057c4",
      "parents": [
        "1ded5beffa4bae6203e1fa03903c6ffa2766bf4c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 31 14:53:55 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 31 15:54:51 2015 +0100"
      },
      "message": "Revert \"Revert \"Add small library for writing of DWARF data.\"\"\n\nUse objdump from prebuilts.\n\nThis reverts commit 1ded5beffa4bae6203e1fa03903c6ffa2766bf4c.\n\nChange-Id: I91f61a91827406930039ccf8691359b1c2636640\n"
    },
    {
      "commit": "ebbb1e322d8c89e69424a543faa03402e5b63673",
      "tree": "c03c84e737c5e5603b84d7b32ee344611aa7d5b1",
      "parents": [
        "5942d57ed5f727d357787aedc089e51aed8eaefa",
        "896f8f7fe562f6e59119cb32531da9f0a5f13d18"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 31 14:33:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 14:33:40 2015 +0000"
      },
      "message": "Merge \"Use variable encoding for StackMap.\""
    },
    {
      "commit": "896f8f7fe562f6e59119cb32531da9f0a5f13d18",
      "tree": "9f2b61474702a655ab5e793bac44d89612cf1b80",
      "parents": [
        "7411a69982c055692966c685636b6a226f10215e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 30 15:44:25 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 31 15:32:48 2015 +0100"
      },
      "message": "Use variable encoding for StackMap.\n\ndex_pc, native_pc_offset, dex_register_map_offset, inline_info_offset,\nand register_mask can now be encoded in 1, 2, 3, or 4 bytes.\n\nChange-Id: I15f93e8226ce374204d44c5a80a9fd89bda2687c\n"
    },
    {
      "commit": "5942d57ed5f727d357787aedc089e51aed8eaefa",
      "tree": "59ec0997049f167b663e3a2bf57854bf08cad204",
      "parents": [
        "f1c2b1f395b8d47aa54a3b7a4ef1329eeb8af5d4",
        "1ded5beffa4bae6203e1fa03903c6ffa2766bf4c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 31 14:20:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 14:20:34 2015 +0000"
      },
      "message": "Merge \"Revert \"Add small library for writing of DWARF data.\"\""
    },
    {
      "commit": "1ded5beffa4bae6203e1fa03903c6ffa2766bf4c",
      "tree": "94d7d6016c5a58d6c5f31d8350330c8025baa014",
      "parents": [
        "75c3d61011a06c1253e773c42e53ee6f137dbe53"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 31 14:18:47 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 31 14:18:47 2015 +0000"
      },
      "message": "Revert \"Add small library for writing of DWARF data.\"\n\nobjdump differences on the bots\n\nThis reverts commit 75c3d61011a06c1253e773c42e53ee6f137dbe53.\n\nChange-Id: Ie5947a27b9fe5de9d5f0838a024b5cf646ec701e\n"
    },
    {
      "commit": "f1c2b1f395b8d47aa54a3b7a4ef1329eeb8af5d4",
      "tree": "5398a63d54c41fecc8c7d7133832cd3fa7572c91",
      "parents": [
        "7411a69982c055692966c685636b6a226f10215e",
        "b765683d995dc8f226c1ea5483ad08b5fac1afa8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 31 13:08:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 13:08:22 2015 +0000"
      },
      "message": "Merge \"ART: Inline MemoryRegion operations\""
    },
    {
      "commit": "b765683d995dc8f226c1ea5483ad08b5fac1afa8",
      "tree": "cc875d2efaa47c1cc33e477dc2a1bcb4d2487959",
      "parents": [
        "ba6233527e455368bba02efe963dd1e24d971727"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 30 10:08:19 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 31 13:02:39 2015 +0100"
      },
      "message": "ART: Inline MemoryRegion operations\n\nFunctions of the MemoryRegion class method are sufficiently simple\nyet do not get inlined. Since these methods are called frequently\nduring stack map generation, inlining them can save a non-negligible\namount of compile time. This patch inserts attributes to force this.\n\nChange-Id: I8ab4f480103fd536f61f52b805864d91bf58428e\n"
    },
    {
      "commit": "a552e1c0584b8ab63150510286478c68cdbce13f",
      "tree": "c9c66b3d6bf001491ddd6a59d16d345d5656db8f",
      "parents": [
        "ba6233527e455368bba02efe963dd1e24d971727"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 26 15:01:03 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 31 12:47:33 2015 +0100"
      },
      "message": "Use unique location catalogs to encode Dex register maps.\n\n- For each CodeInfo object (i.e. for each method), compute a\n  variable index size location catalog  of unique Dex\n  register locations.  In Dex register maps, instead of\n  storing the actual location of a (live) Dex register,\n  store the index of the location catalog entry containing\n  that Dex register location.\n- Adjust art::StackMapStream,\n  art::CheckReferenceMapVisitor::CheckOptimizedMethod,\n  art::StackVisitor::GetVRegFromOptimizedCode, and\n  art::StackVisitor::SetVRegFromOptimizedCode.\n- Add LoadBits and StoreBits methods to art::MemoryRegion\n  to load and store a block of adjacent bits in a memory\n  region.\n- Update compiler/optimizing/stack_map_test.cc.\n- Remove the default value for parameter EmptyFn of\n  art::HashMap.  This default value did not seem to make\n  sense, as it would create an \"empty function\" for type Key\n  by default, whereas art::HashMap expects an \"empty\n  function\" for type std::pair\u003cKey, Value\u003e.\n\nChange-Id: Id9e49d7756c253ce41c36630cd832208d06c2e28\n"
    },
    {
      "commit": "ba6233527e455368bba02efe963dd1e24d971727",
      "tree": "340b8f66b41e199f9cce8203cba83eb617a76756",
      "parents": [
        "466530095eae3f3e8a13bd41b5489450b2e66c0a",
        "bdba92d48a01ab9c2d95159166ba12918df8d980"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 31 11:45:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 11:45:56 2015 +0000"
      },
      "message": "Merge \"Ensure MemoryRegion::Load \u0026 MemoryRegion::Store are word-aligned.\""
    },
    {
      "commit": "bdba92d48a01ab9c2d95159166ba12918df8d980",
      "tree": "50f8917d8e89191ab253857991319eb108b07afe",
      "parents": [
        "fcee9d4ad44b70cb85aafa9056c08a194c5582e6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 31 12:27:44 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Mar 31 12:27:44 2015 +0100"
      },
      "message": "Ensure MemoryRegion::Load \u0026 MemoryRegion::Store are word-aligned.\n\nChange-Id: Ib19fb93abec4789a111dfd48fcac6065e2d3ec82\n"
    },
    {
      "commit": "466530095eae3f3e8a13bd41b5489450b2e66c0a",
      "tree": "35e41f7f11d0de62a353ad18dc0fee3905be1053",
      "parents": [
        "2d9cd63ca365331d02e3030c3ff799737a6f178a",
        "75c3d61011a06c1253e773c42e53ee6f137dbe53"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 31 10:52:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 10:52:35 2015 +0000"
      },
      "message": "Merge \"Add small library for writing of DWARF data.\""
    },
    {
      "commit": "75c3d61011a06c1253e773c42e53ee6f137dbe53",
      "tree": "2ebc4f07a5e176dd92340b18a42fbb97280c2c89",
      "parents": [
        "c8924c6ea9e83ba3832dd5551df38ab06f4aaca9"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 26 16:33:17 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 31 11:22:37 2015 +0100"
      },
      "message": "Add small library for writing of DWARF data.\n\nChange-Id: Ifa77aec7584bfcdcc05ddb049c160be9b6dda7c5\n"
    },
    {
      "commit": "20f85597828194c12be10d3a927999def066555e",
      "tree": "486c10dca0811b036a0cd5f80c02650ac43b11a5",
      "parents": [
        "7d8c6776d7bdcc04411154aa215ba5909939192a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 19 10:07:02 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 08:56:17 2015 +0100"
      },
      "message": "Fixed layout for dex caches in boot image.\n\nDefine a fixed layout for dex cache arrays (type, method,\nstring and field arrays) for dex caches in the boot image.\nThis gives those arrays fixed offsets from the boot image\ncode and allows PC-relative addressing of their elements.\n\nUse the PC-relative load on arm64 for relevant instructions,\ni.e. invoke-static, invoke-direct, const-string,\nconst-class, check-cast and instance-of. This reduces the\narm64 boot.oat on Nexus 9 by 1.1MiB.\n\nThis CL provides the infrastructure and shows on the arm64\nthe gains that we can achieve by having fixed dex cache\narrays\u0027 layout. To fully use this for the boot images, we\nneed to implement the PC-relative addressing for other\narchitectures. To achieve similar gains for apps, we need\nto move the dex cache arrays to a .bss section of the oat\nfile. These changes will be implemented in subsequent CLs.\n\n(Also remove some compiler_driver.h dependencies to reduce\nincremental build times.)\n\nChange-Id: Ib1859fa4452d01d983fd92ae22b611f45a85d69b\n"
    },
    {
      "commit": "d9269b9768101d4b1c82bd99561731d5d0083dc7",
      "tree": "8f2398ab51b9d7a6ef41fd9e0864a08fd0dd7ba8",
      "parents": [
        "e33d0cb5b88703302e3912ca96dabcb06fea4340",
        "f96e8bdf47cfcbecd8ad8ebceb765e5a257ca143"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 03:34:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 31 03:34:08 2015 +0000"
      },
      "message": "Merge \"Fix 099-vmdebug and 802-deoptimization art tests for Mips.\""
    },
    {
      "commit": "f96e8bdf47cfcbecd8ad8ebceb765e5a257ca143",
      "tree": "c9794e7f763b40d8d67d8a6e60b65002a2e8b8bd",
      "parents": [
        "d68cef75a2b57b5c5ab33065d567446b4510b143"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Fri Mar 27 15:38:30 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 31 03:33:52 2015 +0000"
      },
      "message": "Fix 099-vmdebug and 802-deoptimization art tests for Mips.\n\nThere are 2 bugs that are causing these 2 tests to fail the same way.\nThe first one is we should be using $t9 for function calls so $gp can\nbe calculated correctly. The second bug is there can\u0027t be a gap between\nthe quick frame and the callee save frame, otherwise the WalkStack()\nfunction will get confused and crash.\n\nBug: 19003184\nChange-Id: I3c545ce18268deb73150fca2a7d7a798540f1cf2\n"
    },
    {
      "commit": "3efe979d4292330c8fab1708a4361e58681a88cb",
      "tree": "eee6760035b8df7afcfcaa4302410d4096693e6b",
      "parents": [
        "d68cef75a2b57b5c5ab33065d567446b4510b143"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 30 16:18:03 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 30 16:18:03 2015 -0700"
      },
      "message": "Fix oat_file_assistant_test\u0027s ReserveImageSpace().\n\nBug: 19963714\nChange-Id: I9a2db293943cc81592defa8ddc7221bcd36cfdfb\n"
    },
    {
      "commit": "618cc856c0af05ea3b162bd8490999e54a2abc1b",
      "tree": "f27af95ec6aa737ef4ecce33df6ecc8279c47ad1",
      "parents": [
        "547bfb87696fb53a87d4f4418da86938179af9cd",
        "bb9c6b1c55e9e2308b4f5892a398a8837231fdbd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 14:39:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 14:39:34 2015 +0000"
      },
      "message": "Merge \"ART: Refactor callbacks_ in common_runtime_test\""
    },
    {
      "commit": "4bf34ade61a5dd1537781764aa38acbde5be6fc9",
      "tree": "c6c75fa890750fcb9ab51cfc718784129025bac2",
      "parents": [
        "a3d40d5f764adfde8fa40d826cd93ba36cd15437",
        "abbabc8acca2231edc5d6e95d523e3fde9a0ba9f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Mar 30 07:44:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 07:44:46 2015 +0000"
      },
      "message": "Merge \"JDWP: more checking for StackFrame commands\""
    },
    {
      "commit": "bb9c6b1c55e9e2308b4f5892a398a8837231fdbd",
      "tree": "b2ba358bd031b73050f22eea5bcccfc1f6f1add1",
      "parents": [
        "f381645a336f7092ab6f5900c0a2cf183a9dbdf7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 13:56:36 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 20:29:12 2015 -0700"
      },
      "message": "ART: Refactor callbacks_ in common_runtime_test\n\nThe callback is now important for some runtime checks, and just\nresetting callbacks_ is not correct anymore.\n\nChange-Id: I2cb806f1916fd5ea190911a833ce460be557a428\n"
    },
    {
      "commit": "a3d40d5f764adfde8fa40d826cd93ba36cd15437",
      "tree": "c83ae300ed8429c10fec05f53137b911cff41b43",
      "parents": [
        "af38d89634edbef394b3ef2cb3390d08dfb8d939",
        "ca239af73e512df5eeb80fe6c09c2ca614649e06"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 30 01:57:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 01:57:02 2015 +0000"
      },
      "message": "Merge \"Fix some reflection errors\""
    },
    {
      "commit": "ca239af73e512df5eeb80fe6c09c2ca614649e06",
      "tree": "cee8641c42385f40b567c686cd5053fde152a088",
      "parents": [
        "f381645a336f7092ab6f5900c0a2cf183a9dbdf7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 18:27:50 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 18:54:20 2015 -0700"
      },
      "message": "Fix some reflection errors\n\nFixed incorrectly using 2nd frame instead of 1st in VerifyAccess.\nAdded regression test to ART. Fixed broken setShort,\ngetDeclaredFieldInternal.\n\nChange-Id: I4b21d52d998cb768fe9503b8bccec506b7b972e5\n"
    },
    {
      "commit": "af38d89634edbef394b3ef2cb3390d08dfb8d939",
      "tree": "d201eb23ef8bdef663a7580289cece348903adba",
      "parents": [
        "f381645a336f7092ab6f5900c0a2cf183a9dbdf7",
        "7e7e0f47628fb358da70c5e2766545c4f0596235"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "message": "Merge \"ART: Use enums in Trace\""
    },
    {
      "commit": "7e7e0f47628fb358da70c5e2766545c4f0596235",
      "tree": "5f1473cb0aa149fee476966ffb23ec8f8941b208",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "message": "ART: Use enums in Trace\n\nMove away from booleans. Will make introduction of streaming mode\na bit easier / obvious.\n\nChange-Id: Id7ae92f6b97f627e848510d473931537d7db0db8\n"
    },
    {
      "commit": "daaf3265806eb2eadb2e03302bd68022fab5ca28",
      "tree": "aff5d6d53d6d2b65995aa204839f88ee66400989",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 24 13:30:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 14:13:08 2015 -0700"
      },
      "message": "Add AccessibleObject and Field to mirror\n\nMain motivation is to remove all the functionality / field access on\njava side to ArtField. Also comes with some reflection speedups /\nslowdowns.\n\nSummary results:\ngetDeclaredField/getField are slower mostly due to JNI overhead.\nHowever, there is a large speedup in getInt, setInt,\nGetInstanceField, and GetStaticField.\n\nBefore timings (N5 --compiler-filter\u003deverything):\n\n                       benchmark      ns linear runtime\n          Class_getDeclaredField  782.86 \u003d\u003d\u003d\n                  Class_getField  832.77 \u003d\u003d\u003d\n                    Field_getInt  160.17 \u003d\n                    Field_setInt  195.88 \u003d\n                GetInstanceField 3214.38 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 6809.49 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter:\n          Class_getDeclaredField 1068.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Class_getField 1180.00 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    Field_getInt  121.85 \u003d\n                    Field_setInt  139.98 \u003d\n                GetInstanceField 1986.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 2523.63 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nBug: 19264997\n\nChange-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77\n"
    },
    {
      "commit": "4585f876eb5dfb936bd0d6cb6acd78a1f2182ba6",
      "tree": "e9dfed086f56245e74862caa813c708bc4f500f9",
      "parents": [
        "e2c29f4a2717923f190c944a06e02f7d8c3ddcb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:45:15 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:46:09 2015 -0700"
      },
      "message": "ART: Some runtime cleanup\n\nUse an enum for the compiler-callback mode.\n\nRefactor and remove some unnecessary includes in runtime.h.\n\nChange-Id: If2245fa470171311b8e05b677cf6bb28f209585a\n"
    },
    {
      "commit": "e48856666e2e959687660f3b708e0c6da210ecb2",
      "tree": "303ee0f92f331008abcad400cf5da36845b1e945",
      "parents": [
        "86787d0bc2c5ad3b9c3b880b0fe2325d2b8bd672"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:18:07 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:18:07 2015 -0700"
      },
      "message": "ART: Use instrumented Alloc in Class-Linker\n\nTo support Valgrind over dex2oat and gtests, CreatePathClassLoader\nmust use instrumented allocation.\n\nChange-Id: I9dc2d009d37bec598c5de67688ebf9810da6e899\n"
    }
  ],
  "next": "86787d0bc2c5ad3b9c3b880b0fe2325d2b8bd672"
}
