)]}'
{
  "log": [
    {
      "commit": "a841bc3fb000a9cdbbb7b3cedf2cb7a11e2c82ce",
      "tree": "875da22fe58b8be37e556a790fa199678f67ed3c",
      "parents": [
        "25255512bae64fefc5cb76b1590e8e9c1dd42e82",
        "5233f93ee336b3581ccdb993ff6342c52fec34b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 30 17:46:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 17:46:01 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag even more arena allocations.\""
    },
    {
      "commit": "a39ce12465acae0e594b1fef10225057737aeba4",
      "tree": "3c4015753404853e12ce1680d0c1284ad3b3f61c",
      "parents": [
        "84128f7ed681b3c08a7cfba1031c13c17db462d0",
        "1920c1036ebe6dcdc93959714c9fdcedc199baf0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 30 09:20:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 09:20:32 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable optimizations with --debuggable.\"\"\""
    },
    {
      "commit": "1920c1036ebe6dcdc93959714c9fdcedc199baf0",
      "tree": "e36976aea8f789ceb037b66308d1ec84a0421772",
      "parents": [
        "0766e3ff5638b14d6b3ea6157c800eed11be5b98"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 18:00:03 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 30 09:05:15 2015 +0100"
      },
      "message": "Revert \"Revert \"Enable optimizations with --debuggable.\"\"\n\nThis reverts commit b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde.\n\nChange-Id: I398c23863e4fd86a3112076417378d22efd08306\n"
    },
    {
      "commit": "d2aaf5c103ea7792854b18150284762f98132287",
      "tree": "707a432372a66f099c23e96a4601cb3f03458d0e",
      "parents": [
        "9c53671bb659cb47bea82f6cbdd46c0843753e82",
        "45a8522898702f6a725ae19d97bceedc8fc609a6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 30 07:20:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 07:20:50 2015 +0000"
      },
      "message": "Merge \"Revert \"Keep internal stack trace methods declaring classes live\"\""
    },
    {
      "commit": "45a8522898702f6a725ae19d97bceedc8fc609a6",
      "tree": "e37a48f0f06a60271c02c4175cfbe8d1b409e71d",
      "parents": [
        "566fc926942ed57925627d1bd43e099938084f1e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 30 07:20:13 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 30 07:20:13 2015 +0000"
      },
      "message": "Revert \"Keep internal stack trace methods declaring classes live\"\n\nBreaks jdwp tests.\n\nBug: 22720414\n\nThis reverts commit 566fc926942ed57925627d1bd43e099938084f1e.\n\nChange-Id: Ic3544e86af35bf748f9d47e0a4077dcdc206a821\n"
    },
    {
      "commit": "9c53671bb659cb47bea82f6cbdd46c0843753e82",
      "tree": "9ead58bc8ff366d503dcff4fafd4bd5d0ed5ecbd",
      "parents": [
        "3a447ded48925f3ec65553fcf56c55da23777003",
        "566fc926942ed57925627d1bd43e099938084f1e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 30 01:17:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 30 01:17:00 2015 +0000"
      },
      "message": "Merge \"Keep internal stack trace methods declaring classes live\""
    },
    {
      "commit": "566fc926942ed57925627d1bd43e099938084f1e",
      "tree": "c7551ecbfbaa82ec37a755b3aff53fa24253d64a",
      "parents": [
        "0766e3ff5638b14d6b3ea6157c800eed11be5b98"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 29 10:21:55 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 29 18:11:12 2015 -0700"
      },
      "message": "Keep internal stack trace methods declaring classes live\n\nWe now store the declaring classes in the internal stack trace to\nmake sure class unloading doesn\u0027t unload any classes owning methods\nin the stack trace.\n\nThis fixes DexClassLoaderTest in libcore. Added regression test.\n\nBug: 22720414\n\nChange-Id: I185f87c8ec0807e83f4661bd5bb5652dba6fc281\n"
    },
    {
      "commit": "3a447ded48925f3ec65553fcf56c55da23777003",
      "tree": "707a432372a66f099c23e96a4601cb3f03458d0e",
      "parents": [
        "c0761cb9b11e38a8ae615c0c419519840abbfece",
        "38b8287004770e4d20dcc0e0fe4697060917ec72"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 29 22:22:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 22:22:40 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Remove unnecessary SHARED_REQUIRES in ArtMethod\"\""
    },
    {
      "commit": "38b8287004770e4d20dcc0e0fe4697060917ec72",
      "tree": "e37a48f0f06a60271c02c4175cfbe8d1b409e71d",
      "parents": [
        "6dd332933a570f5e413dd0d784481607798fbcf5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 29 22:22:28 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 29 22:22:28 2015 +0000"
      },
      "message": "Revert \"ART: Remove unnecessary SHARED_REQUIRES in ArtMethod\"\n\nThis reverts commit 6dd332933a570f5e413dd0d784481607798fbcf5.\n\nInterestingly fails for sdk build.\n\nChange-Id: I28d8fc05575ff1d744b4a831c32ef4414775561a\n"
    },
    {
      "commit": "c0761cb9b11e38a8ae615c0c419519840abbfece",
      "tree": "e6f6d3cd312bc554e8678d0ade37f50eb6353e3d",
      "parents": [
        "e024162070e3ce7e92a65e3b0f62dce7b8a8505a",
        "6dd332933a570f5e413dd0d784481607798fbcf5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 29 21:18:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 21:18:07 2015 +0000"
      },
      "message": "Merge \"ART: Remove unnecessary SHARED_REQUIRES in ArtMethod\""
    },
    {
      "commit": "e024162070e3ce7e92a65e3b0f62dce7b8a8505a",
      "tree": "707a432372a66f099c23e96a4601cb3f03458d0e",
      "parents": [
        "0766e3ff5638b14d6b3ea6157c800eed11be5b98",
        "a23b4680a8565f28e8aa958febf8949db74a3064"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 29 19:07:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 19:07:50 2015 +0000"
      },
      "message": "Merge \"Fix a mutator lock violation in the generic JNI end sequence.\""
    },
    {
      "commit": "5233f93ee336b3581ccdb993ff6342c52fec34b0",
      "tree": "225dc0ab491263ef56362a8d0fe2926266bd5047",
      "parents": [
        "de8a3f4dce1e9ff0e3be16956b06bafc8cd4f397"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 19:01:15 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 19:46:03 2015 +0100"
      },
      "message": "Optimizing: Tag even more arena allocations.\n\nTag previously \"Misc\" arena allocations with more specific\nallocation types. Move some native heap allocations to the\narena in BCE.\n\nBug: 23736311\nChange-Id: If8ef15a8b614dc3314bdfb35caa23862c9d4d25c\n"
    },
    {
      "commit": "a23b4680a8565f28e8aa958febf8949db74a3064",
      "tree": "bc86ebbdf93e4318ab89835626996f91bbf94c18",
      "parents": [
        "8a0014dd3ad1562d93695fa0d3033856ec7da133"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 28 17:47:32 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 29 11:33:13 2015 -0700"
      },
      "message": "Fix a mutator lock violation in the generic JNI end sequence.\n\nartQuickGenericJniEndTrampoline() was accessing objects without a shared\nmutator lock right after returning from a JNI call but before switching\nto the runnable state.\n\nThis fixes crashes with table lookup read barriers enabled.\n\nBug: 12687968\nChange-Id: I94ad9ca276750f58cb68b2fa9eb8cdeb371f021b\n"
    },
    {
      "commit": "6dd332933a570f5e413dd0d784481607798fbcf5",
      "tree": "a978604c589e2d63c5e7d7b7155bf62ff3cb72cd",
      "parents": [
        "0766e3ff5638b14d6b3ea6157c800eed11be5b98"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 29 11:21:43 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 29 11:21:43 2015 -0700"
      },
      "message": "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod\n\nMove DCHECKs in GetAccessFlags into their own block and let them\nacquire the mutator lock, if necessary. Then remove the old\nannotations.\n\nChange-Id: I29e24f17b001d0e16dc66c01a0f6450efb64ebc6\n"
    },
    {
      "commit": "0766e3ff5638b14d6b3ea6157c800eed11be5b98",
      "tree": "e37a48f0f06a60271c02c4175cfbe8d1b409e71d",
      "parents": [
        "de8a3f4dce1e9ff0e3be16956b06bafc8cd4f397",
        "b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:30:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 17:30:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable optimizations with --debuggable.\"\""
    },
    {
      "commit": "b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde",
      "tree": "fdf0c3bb7630ed0d5598365059fca4c04cccb1bf",
      "parents": [
        "43855ccb01703b188777fe59e1110e6a23803171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:30:10 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:30:10 2015 +0000"
      },
      "message": "Revert \"Enable optimizations with --debuggable.\"\n\nBuild error with gcc.\n\nThis reverts commit 43855ccb01703b188777fe59e1110e6a23803171.\n\nChange-Id: I45abc7ee0943b2ad7bd644c88858891fc7a38ead\n"
    },
    {
      "commit": "de8a3f4dce1e9ff0e3be16956b06bafc8cd4f397",
      "tree": "97b1251e4572637bc9d99335bd2c3044f8ef7074",
      "parents": [
        "9baa4df684bdf0150bd8632f991708627772ea85",
        "43855ccb01703b188777fe59e1110e6a23803171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 17:05:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 17:05:26 2015 +0000"
      },
      "message": "Merge \"Enable optimizations with --debuggable.\""
    },
    {
      "commit": "9baa4df684bdf0150bd8632f991708627772ea85",
      "tree": "e37a48f0f06a60271c02c4175cfbe8d1b409e71d",
      "parents": [
        "f6860a5f12a8fe974b8f25e67a19a71bf0378d62",
        "c3fcd41f15dffbb5f28c9900f421471a3d2dd420"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 29 17:04:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 17:04:17 2015 +0000"
      },
      "message": "Merge \"Address some code comments\""
    },
    {
      "commit": "43855ccb01703b188777fe59e1110e6a23803171",
      "tree": "7cd613dacd58258af4684595c41e4c118250b528",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 15:43:06 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 29 16:57:52 2015 +0100"
      },
      "message": "Enable optimizations with --debuggable.\n\nChange-Id: I8979e59ee081222687fda1c93ac0bf3acbbad936\n"
    },
    {
      "commit": "a68ceb1fd5c4f8fe18aacdb33d605919f7d61ddf",
      "tree": "df4d7b498edd4a74192605c02dd166c2c3051172",
      "parents": [
        "9139578addd6d0e51088fc45bfc0972fc97939b7",
        "225b6464a58ebe11c156144653f11a1c6607f4eb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 14:56:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 14:56:04 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag arena allocations in code generators.\""
    },
    {
      "commit": "225b6464a58ebe11c156144653f11a1c6607f4eb",
      "tree": "3f1c6067c3841c892edaa1a60a61af9c559cb4e4",
      "parents": [
        "6a9984e62c08bcd78c8e49dd40b1f0f9d53513b7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 28 12:17:40 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 29 10:49:35 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in code generators.\n\nAnd completely remove the deprecated GrowableArray.\n\nReplace GrowableArray with ArenaVector in code generators\nand related classes and tag arena allocations.\n\nLabel arrays use direct allocations from ArenaAllocator\nbecause Label is non-copyable and non-movable and as such\ncannot be really held in a container. The GrowableArray\nnever actually constructed them, instead relying on the\nzero-initialized storage from the arena allocator to be\ncorrect. We now actually construct the labels.\n\nAlso avoid StackMapStream::ComputeDexRegisterMapSize() being\npassed null references, even though unused.\n\nChange-Id: I26a46fdd406b23a3969300a67739d55528df8bf4\n"
    },
    {
      "commit": "c3fcd41f15dffbb5f28c9900f421471a3d2dd420",
      "tree": "df1bb755238684ab5a01a79959c063a88801e218",
      "parents": [
        "ac87001cbbd44b436cc7866f7a41037ca83b17f1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 16:54:59 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 28 18:01:30 2015 -0700"
      },
      "message": "Address some code comments\n\nChange-Id: I0a38a387c4328d45bbc04d095bf3388c27495c12\n"
    },
    {
      "commit": "931e26843bbb688eacfa67b40414c6b8f221a56a",
      "tree": "63511ae48d4d485823e82f9f0c0af2bda4b78102",
      "parents": [
        "ac87001cbbd44b436cc7866f7a41037ca83b17f1",
        "639bdd13993644a267f177f8f5936496bda65e2b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 28 22:40:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 28 22:40:18 2015 +0000"
      },
      "message": "Merge \"ART: Single-frame deopt\""
    },
    {
      "commit": "639bdd13993644a267f177f8f5936496bda65e2b",
      "tree": "fc68e344355ab1c0cfef4d47dd8f2cbc9fc7e022",
      "parents": [
        "b175a45be78152606a1db1eac0b79ef8777644f5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 03 11:22:45 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 28 15:37:28 2015 -0700"
      },
      "message": "ART: Single-frame deopt\n\nAdd deoptimization of a single frame. Works by removing the managed\ncode frame and jumping into the quick-to-interpreter bridge, and\nthe bridge understanding a stored ShadowFrame.\n\nWe need a separate fixup pass. For x86, we leave the return address\non the stack so we don\u0027t need to push it there.\n\nBug: 21611912\nChange-Id: I06625685ced8b054244f8685ab50b238a705b9d2\n"
    },
    {
      "commit": "cffb747d6b292f07230c3a5fd06527e52dee5383",
      "tree": "3ed969fbf2187cfd14474dceaf7a2b20baecf42c",
      "parents": [
        "85e5207ef094f99081539333bd868ce721c6fd73"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 28 10:33:00 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 28 10:46:24 2015 -0700"
      },
      "message": "Don\u0027t unload shared libraries for null class loader.\n\nIf we load a shared library in the boot class loader (null),\nthen we create the SharedLibrary with a null class loader. We\nshouldn\u0027t unload this shared library if the class loader decodes to\nnull since it may still be in use.\n\nFixes some hangs in gcstress tests.\n\nBug: 22720414\nChange-Id: I52eca4cdba2c5ddd8e3dc7d133d253e5626c5b44\n"
    },
    {
      "commit": "cf3f991b0dbad7edd28958aee199f1d06f648984",
      "tree": "8b0770087a128acdca7adc5b0d3bd1428e6239bc",
      "parents": [
        "722b5a7580e2d1e7a0327f46615d4c24acba9baa",
        "b30259251b22430fad12f1adeab671e4bf8f88f5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 28 15:13:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 28 15:13:57 2015 +0000"
      },
      "message": "Merge \"ART: Use unique_ptr for alloca-ed ShadowFrames\""
    },
    {
      "commit": "6918bf13eb855b3aa8ccdddda2d27ae8c60cec56",
      "tree": "907f504a4d004ac1e44b73c3984e365e889407e8",
      "parents": [
        "446ca43e8f876dcc1ee90fcf432d6392c44a3f60"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Sun Sep 27 19:19:06 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Sun Sep 27 19:19:23 2015 -0700"
      },
      "message": "Revert \"Revert \"lambda: Experimental support for capture-variable and liberate-variable\"\"\n\nThis reverts commit 7bbb80ab52c203e44d2ded2c947b3b03b4b31ec4.\n\nChange-Id: If806ce5c6c5e96fdb2c3761dee096f74e7e5b001\n"
    },
    {
      "commit": "446ca43e8f876dcc1ee90fcf432d6392c44a3f60",
      "tree": "29e82c4fff7663d1e184ae3059f547fa3b65646b",
      "parents": [
        "b175a45be78152606a1db1eac0b79ef8777644f5",
        "7bbb80ab52c203e44d2ded2c947b3b03b4b31ec4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Sep 27 19:50:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Sep 27 19:50:57 2015 +0000"
      },
      "message": "Merge \"Revert \"lambda: Experimental support for capture-variable and liberate-variable\"\""
    },
    {
      "commit": "7bbb80ab52c203e44d2ded2c947b3b03b4b31ec4",
      "tree": "eb54c557467f1401c4bd5729fa2b9e8ae91e8ffd",
      "parents": [
        "b72123440d8541362ebdb131436f9dbdda5fd329"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Sep 27 19:50:40 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Sep 27 19:50:40 2015 +0000"
      },
      "message": "Revert \"lambda: Experimental support for capture-variable and liberate-variable\"\n\nTest fails.\n\nThis reverts commit b72123440d8541362ebdb131436f9dbdda5fd329.\n\nChange-Id: Ic9ed92f8c826d8465eb36b746dc44af05caf041c\n"
    },
    {
      "commit": "b175a45be78152606a1db1eac0b79ef8777644f5",
      "tree": "d31b1ddd46ef19b04752e41e64ef8791b7d727bd",
      "parents": [
        "fb0a0e831f3df4977c51c9f85046c3099613390f",
        "0b7ac98ecdb891797a282c508b41238451d6c770"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Sep 26 02:45:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 26 02:45:05 2015 +0000"
      },
      "message": "Merge \"MIPS64: Implement intrinsics from java.lang.Math:\""
    },
    {
      "commit": "9c612cacb05c8661719d770dbce8dfdcb9c105cf",
      "tree": "6cd7d8e51ace1f48692d0f48c33e9c6b22cc283a",
      "parents": [
        "c27e706785c975eb91d9716800aae6c48dc47da6",
        "b72123440d8541362ebdb131436f9dbdda5fd329"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 25 23:55:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 23:55:58 2015 +0000"
      },
      "message": "Merge \"lambda: Experimental support for capture-variable and liberate-variable\""
    },
    {
      "commit": "0b7ac98ecdb891797a282c508b41238451d6c770",
      "tree": "c6d2b03cf97c8c087cbf5a00e632db3105a58726",
      "parents": [
        "c27e706785c975eb91d9716800aae6c48dc47da6"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Sep 04 12:54:28 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Sep 25 16:15:52 2015 -0700"
      },
      "message": "MIPS64: Implement intrinsics from java.lang.Math:\n\n- abs(double)           - abs(float)            - abs(int)\n- abs(long)             - ceil(double)          - floor(double)\n- max(double, double)   - max(float, float)     - max(int, int)\n- max(long, long)       - min(double, double)   - min(float, float)\n- min(int, int)         - min(long, long)       - rint(double)\n- sqrt(double)\n\nThe math intrinsics:\n\n- round(double)         - round(float)\n\naren\u0027t implemented because there is no simple mapping from these Java\nfunctions into MIPS assembly code.\n\nChange-Id: I37ee5224d3d64f7162ed98521ba566fbc58d7905\n"
    },
    {
      "commit": "b72123440d8541362ebdb131436f9dbdda5fd329",
      "tree": "41e3d21496a270edc06879f084a504a39af9469b",
      "parents": [
        "9f3b8d38de615efef6d2536817f19ad2ccaa313a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 25 14:22:08 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 25 15:53:00 2015 -0700"
      },
      "message": "lambda: Experimental support for capture-variable and liberate-variable\n\nSupports capturing/liberating any primitive variables.\nNo support for capturing objects/lambdas yet since they would both\nneed GC changes to track roots through closures.\n\nChange-Id: Ibfb68bfe4c579dbf93823aac4c0e6ac8f6360c5d\n"
    },
    {
      "commit": "6525e67f3c13033a7d9f93e9a639b401eec0cc78",
      "tree": "bc5ad2dd1e0733b6c0dd86416078dac017aa6a99",
      "parents": [
        "acbb159e54d21051219c521f6391e768eae89c52",
        "36c0136e848e14993ad8e0f85c94caae14e2246a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 21:59:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 21:59:28 2015 +0000"
      },
      "message": "Merge \"Fix bug in WaitForCompilationToFinish\""
    },
    {
      "commit": "36c0136e848e14993ad8e0f85c94caae14e2246a",
      "tree": "53c3cc1559a448297873051610eae08f19d5f406",
      "parents": [
        "a6af255cb93f25737110c3efa8595dd843eecb12"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 14:39:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 14:56:02 2015 -0700"
      },
      "message": "Fix bug in WaitForCompilationToFinish\n\nWe now pass the barrier inside of Finalize, previously we did it in\nRun. This was buggy since Finalize is called after Run and there was\na race condition where WaitForCompilationToFinish would delete the\ntask before we called Finalize.\n\nChange-Id: I3f624fa9cdfcf2b266775c6927c336fb987dd58c\n"
    },
    {
      "commit": "acbb159e54d21051219c521f6391e768eae89c52",
      "tree": "6cd24c065de653b8971f4cee76e899bf8f6ece6e",
      "parents": [
        "a6af255cb93f25737110c3efa8595dd843eecb12",
        "dbf056d38dddda10c5f409e3155c7b4211183f63"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 25 21:46:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 21:46:35 2015 +0000"
      },
      "message": "Merge \"ART: Move code from RA to T9 in Mips64 longjump\""
    },
    {
      "commit": "a50f9cf85a3c72376a6f3e4d2e673c08169cffde",
      "tree": "9e3aea98571d04c3a3d43c4319bacd4c76e11974",
      "parents": [
        "8a0014dd3ad1562d93695fa0d3033856ec7da133"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 11:34:45 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 13:19:42 2015 -0700"
      },
      "message": "Fix JIT for class unloading\n\nKeep declaring class of method live to prevent unloading.\nWait for JIT to finish compiling before calling Runtime.gc(), this\nprevents flaky failures due to classes not being unloaded.\n\nBug: 22720414\n\nChange-Id: I9fe5e5e39d681bcd22acc2d2f34b0dbc9887708d\n"
    },
    {
      "commit": "dbf056d38dddda10c5f409e3155c7b4211183f63",
      "tree": "a4974b691cea88469cfe5e172b682820a41a1ca4",
      "parents": [
        "e02fa201444f5e599f9375b7da330f42350b007e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 25 08:24:13 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 25 13:12:58 2015 -0700"
      },
      "message": "ART: Move code from RA to T9 in Mips64 longjump\n\nDo not use the return address. It should not be clobbered as we\nmay need it, e.g., for single-frame deopt.\n\nChange-Id: I401d7b0034bc4e210bda231ec78ee31242053b36\n"
    },
    {
      "commit": "8a0014dd3ad1562d93695fa0d3033856ec7da133",
      "tree": "0f4548ef3f6459641439b5ec2315f23a1d377171",
      "parents": [
        "011d828782f24b2adf56f4b350ca1f946836b0a1",
        "598302ac91fd3e990f50e1aa530c3ad61d6d946e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 18:34:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 18:34:32 2015 +0000"
      },
      "message": "Merge \"Call JNI_OnUnload when class loaders get collected\""
    },
    {
      "commit": "598302ac91fd3e990f50e1aa530c3ad61d6d946e",
      "tree": "e348ed768ad36e70c920114d1b7fe7b5b4d24a57",
      "parents": [
        "a00bd9395be31bd69a0558b78a48e4279a6ce693"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 23 14:52:39 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 11:05:00 2015 -0700"
      },
      "message": "Call JNI_OnUnload when class loaders get collected\n\nAdded test case to 141-class-unload.\n\nBug: 22720414\nChange-Id: I0575fae72521520a17587e8b0088bf8112705ad8\n"
    },
    {
      "commit": "5469d3444614be1d29302aef75210119df453721",
      "tree": "f42efaec322f96b1ee703667ec10fa7fe95d8a6e",
      "parents": [
        "a00bd9395be31bd69a0558b78a48e4279a6ce693"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 25 16:57:53 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 25 17:42:46 2015 +0100"
      },
      "message": "ART: Reject PackedSwitch with overflowing keys\n\nAs stated in \"Dalvik bytecode\" sections on switch payload format,\nswitch case keys must be stored in ascending order. Verifier enforced\nthis for sparse-switch but not for packed-switch.\n\nBug: 24399945\nChange-Id: I0802d38e2bfae93c0dffe8ebfce2e9693a63ec02\n"
    },
    {
      "commit": "a00bd9395be31bd69a0558b78a48e4279a6ce693",
      "tree": "752dab08e8b0c87b42aaeff139fe4b480316a8fe",
      "parents": [
        "468c168b57cdbd6b00c3686644951bc653e136d5",
        "05aa4d3eb18bdcf2dab0addbc656f5ba28242043"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 15:50:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 15:50:24 2015 +0000"
      },
      "message": "Merge \"Enable class unloading\""
    },
    {
      "commit": "468c168b57cdbd6b00c3686644951bc653e136d5",
      "tree": "998385c5c545c558ff4f1e99acd46c91804c1946",
      "parents": [
        "59aacd4226e14313e8b0500ec0a412f17fc118ae",
        "3d6b47018ecc8f469919d383b7d80568d94690cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 25 15:46:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 15:46:06 2015 +0000"
      },
      "message": "Merge \"ART: Show the previous failure type in init rejection\""
    },
    {
      "commit": "071cd9d654c3e578c400be1414c3b0ea58508c72",
      "tree": "cf9831b764717ce628d9c6e34217d80d2c2eca1d",
      "parents": [
        "ec7e44f7afe0ff48d4d1ae54a12d375e0392d24c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 15:57:36 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 15:57:36 2015 +0100"
      },
      "message": "ART: Fix misleading error message in method verifier.\n\nChange-Id: I4805de0060b74168fa36e077a6a7ea59e9d72d46\n"
    },
    {
      "commit": "ec7e44f7afe0ff48d4d1ae54a12d375e0392d24c",
      "tree": "30ce5725c7258d6584a56f2c6382cee529df2cc2",
      "parents": [
        "e92ed9d31bae7ccd48b60aa921e9dd2ca96ac9db",
        "2aaa4b5532d30c4e65d8892b556400bb61f9dc8c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 13:59:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 13:59:08 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag more arena allocations.\""
    },
    {
      "commit": "2aaa4b5532d30c4e65d8892b556400bb61f9dc8c",
      "tree": "f4259c33171ec8efd945aeedab1e57feb7970f42",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 17:03:26 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 25 12:18:02 2015 +0100"
      },
      "message": "Optimizing: Tag more arena allocations.\n\nReplace GrowableArray with ArenaVector and tag arena\nallocations with new allocation types.\n\nAs part of this, make the register allocator a bit more\nefficient, doing bulk insert/erase. Some loops are now\nO(n) instead of O(n^2).\n\nChange-Id: Ifac0871ffb34b121cc0447801a2d07eefd308c14\n"
    },
    {
      "commit": "05aa4d3eb18bdcf2dab0addbc656f5ba28242043",
      "tree": "d1ddf25ea6c8391bf29a47bf21a5800bc3a5369d",
      "parents": [
        "c7e0da5292e841f6a864dd010bd6e0b06e0ece73"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Sep 19 12:44:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 24 16:57:34 2015 -0700"
      },
      "message": "Enable class unloading\n\nAlso added class unloading test. Added a missing write barrier in\nthe class linker to fix a heap corruption error.\n\nBug: 22720414\nChange-Id: Iff615d69b574a4438e91d4c844279d202f4f2736\n"
    },
    {
      "commit": "b30259251b22430fad12f1adeab671e4bf8f88f5",
      "tree": "80bff979beae84702b739962656a16d245a40ef4",
      "parents": [
        "eae0927cb81437389dc96437e9f04903783282b4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 01 14:45:00 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 24 15:42:14 2015 -0700"
      },
      "message": "ART: Use unique_ptr for alloca-ed ShadowFrames\n\nTo enable automated calls of the destructor (for extensions of\nShadowFrame), return a unique_ptr with a custom deleter. Use a\nmacro so that the alloca happens in the caller.\n\nChange-Id: Id28a6ea131f108e4a94ff1699fc22e7b44aec018\n"
    },
    {
      "commit": "0b6e283291eac009eb9170525dd774d1e007025a",
      "tree": "8c28c06297921957503a8dc8a175c56ec1f6ef74",
      "parents": [
        "8c20e7609fdc8bbf16979a874301e4cab0dbf355"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 10:41:33 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 24 10:43:26 2015 +0100"
      },
      "message": "ART: mprotect() bottom page of ThreadPoolWorker stacks.\n\nThis will catch stack overflows instead of creating hard\nto find issues later on.\n\nBug: 24133462\nChange-Id: I3ae5d5da70b8167867936b2561830f3ff47f14fc\n"
    },
    {
      "commit": "1ac1c2bba3ff0835cbae4753621f38dc935ebd91",
      "tree": "37c6e9971c06edc6c94dacdc294a9f4b65f821ba",
      "parents": [
        "b009a21820dd3f6b2229f35f4a17848cc7333559"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 14:53:32 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 15:55:08 2015 -0700"
      },
      "message": "Some clean up for mark sweep files\n\nBug: 19534862\nChange-Id: Ib619e8c4b9d902269d123baa18be56c94114e070\n"
    },
    {
      "commit": "017ed0b936539dba1bb6f1d9b2bd81798b471966",
      "tree": "24cee7c2bafe0d931081d3869cfc7ca78f748e47",
      "parents": [
        "b64d5832879f462ed146f0b012ea0bf62255b643"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "message": "Fix CreateLinearAlloc bug\n\nShould have been using IsAotCompiler since the JIT has IsCompiler\nas true but no low 4 GB arena pool.\n\nFixes 64 bit JIT tests.\n\nChange-Id: Idc4d3e66c573eacd31ae85c66f8493b418d221d7\n"
    },
    {
      "commit": "951ec2c93c79c5539cbcc669566f0808d4460338",
      "tree": "ce3505be2fc526afafaf6135e9d15d831860502d",
      "parents": [
        "6a6916b378c413c2692782e901393607c47f0005"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 08:50:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 16:25:09 2015 +0000"
      },
      "message": "Revert \"Revert \"Add one LinearAlloc per ClassLoader\"\"\n\nIssue was fixed by:\nhttps://android-review.googlesource.com/#/c/171945/\n\nBug: 22720414\n\nThis reverts commit 7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0.\n"
    },
    {
      "commit": "6a6916b378c413c2692782e901393607c47f0005",
      "tree": "b492954ac5c25d99c967798174355736a934344a",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004",
        "37cf51fb00bbe4bb82e713228b460cafbbf79b43"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "message": "Merge \"ART: Fix destruction order in Runtime.\""
    },
    {
      "commit": "37cf51fb00bbe4bb82e713228b460cafbbf79b43",
      "tree": "7329488024609e91d6683734c889b0cc0998f3aa",
      "parents": [
        "a28cae4d38020ea5c42c203414eaa667743ffd1e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 11:43:46 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 12:09:59 2015 +0100"
      },
      "message": "ART: Fix destruction order in Runtime.\n\nDestroy arena allocators as late as possible.\n\nWith https://android-review.googlesource.com/172057 , the\nArenaPool was indirectly used by ClassLinker\u0027s destructor\n(via ~LinearAlloc) after it has already been destroyed.\nThese allocators were being destroyed way too early anyway,\nthey should be orderly destroyed when the unique_ptr\u003c\u003e\nmembers of Runtime have their destructors executed. However,\ndue to the potential dependence on MemMap, we destroy them\njust before the MemMap::ShutDown().\n\nChange-Id: Ifc3e5a24a29536d5767c82353901e2d22b13d643\n"
    },
    {
      "commit": "99e4953d1e8253fd9414f37b4adb238b5a5e5b33",
      "tree": "b4bdbac4e4362b435fe4ec5af17af366a450d441",
      "parents": [
        "a28cae4d38020ea5c42c203414eaa667743ffd1e",
        "7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 09:48:28 2015 +0000"
      },
      "message": "Merge \"Revert \"Add one LinearAlloc per ClassLoader\"\""
    },
    {
      "commit": "7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0",
      "tree": "a87eeac15fd485bb14ea8ace2b2bc839c4c253be",
      "parents": [
        "356412e2b7ba3fde164bc08a44fee0ddc19c54e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "message": "Revert \"Add one LinearAlloc per ClassLoader\"\n\nTimes out on 32bit target/host for 132-daemon-locks-shutdown test.\n\nBug: 22720414\n\nThis reverts commit 356412e2b7ba3fde164bc08a44fee0ddc19c54e1.\n\nChange-Id: I5ab3a09e88a5ad8c306a27d2606ecbecc80b9326\n"
    },
    {
      "commit": "a28cae4d38020ea5c42c203414eaa667743ffd1e",
      "tree": "e76a781160bb2b70337c630b463761679ee00b57",
      "parents": [
        "beb5d85bec2f2e001fa89a79c0dfccbc9290986c",
        "356412e2b7ba3fde164bc08a44fee0ddc19c54e1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 23:29:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 21 23:29:32 2015 +0000"
      },
      "message": "Merge \"Add one LinearAlloc per ClassLoader\""
    },
    {
      "commit": "356412e2b7ba3fde164bc08a44fee0ddc19c54e1",
      "tree": "9e07c960e67b3627ced80fa9a0dcd0c9fd8b5951",
      "parents": [
        "d0d11f20811f260453f6dfe2e26d7dbd6ed55f01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 09:07:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 12:48:12 2015 -0700"
      },
      "message": "Add one LinearAlloc per ClassLoader\n\nAlso added freeing linear alloc and class table when the\ncorresponding class loader is no longer reachable.\n\nBug: 22720414\n\nChange-Id: Icb32c3a4c865f240e147bc87ed080a6b1d8a5795\n"
    },
    {
      "commit": "3d6b47018ecc8f469919d383b7d80568d94690cc",
      "tree": "967273e1d788f727fb1388211ffe3b1bc43d3921",
      "parents": [
        "7b87ff905ada1815d9b24843cf13b6ff54240e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 21 08:35:52 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 21 08:35:52 2015 -0700"
      },
      "message": "ART: Show the previous failure type in init rejection\n\nPrint the descriptor of the failure type when we reject re-init\non a previously failed class.\n\nBug: 24213543\nChange-Id: Ied0f101b81e386951313edd09865a8b0142b9d16\n"
    },
    {
      "commit": "78568351b22554c3a885216cd5be480dab88a951",
      "tree": "0f4a41dfd93535e0f3165ea94b302a5cc36cbfd1",
      "parents": [
        "47d89c7376090a3a4b8eb114e2c861afe27d01d0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 21 12:00:16 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 21 13:24:18 2015 +0100"
      },
      "message": "Fix locking on string init map (again).\n\nFollow-up to\n    https://android-review.googlesource.com/172036 ,\n    https://android-review.googlesource.com/171621 .\n\nDon\u0027t overwrite existing values, only insert new ones.\n(Also improve performance by using move semantics.)\n\nThis prevents the following race: Thread 1 looks for string\ninit map for a method but doesn\u0027t find it, so it starts to\nconstruct a new map. Thread 2 is doing the same but it\u0027s\nfaster and actually inserts the new map and keeps a pointer\nto it. After Thread 2 releases the lock, Thread 1 acquires\nit and starts to Overwrite() the element that the Thread 2\nis currently using, so Thread 2 ends up looking at a map\nthat\u0027s being actively modified.\n\nChange-Id: I135571af644363ea7bb282969a1bc7287b34f9b2\n"
    },
    {
      "commit": "4686c52394c0221ee3236753ad6be48f18b79365",
      "tree": "e3177c7686cb6203c5f4c91cb9a38b6e80fcbec0",
      "parents": [
        "8e7b964be2fab9b6bbb30cf8897617424d0fe85f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 18 14:44:32 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 18 15:07:07 2015 -0700"
      },
      "message": "Fix locking on string init map.\n\nRelated to: https://android-review.googlesource.com/#/c/171621\n\nChange-Id: Ib6dcf9914f490f1d744c0abe1f520e5b307c7acd\n"
    },
    {
      "commit": "85c7bab43d11180d552179c506c2ffdf34dd749c",
      "tree": "337976b69d3b2a35cc9f12284cda03c8eb2a58c7",
      "parents": [
        "819a9c5638b6d6b579c89fe36df96acc1f378182"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 13:40:46 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 15:19:04 2015 +0100"
      },
      "message": "Revert \"Revert \"Optimize code generation of check-cast and instance-of.\"\"\n\nThis reverts commit 7537437c6a2f89249a48e30effcc27d4e7c5a04f.\n\nChange-Id: If759cb08646e47b62829bebc3c5b1e2f2969cf84\n"
    },
    {
      "commit": "9632d5a5ed8295d63fc82fe418a3b776de4e4459",
      "tree": "19a60a505b2693646820885215a5dcb8752872b1",
      "parents": [
        "7cfbfe7752a074442ee5fbe469d377421cffe389",
        "6958e4f0f660deded126771f2e00386ee51de2f6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 18 08:31:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 08:31:16 2015 +0000"
      },
      "message": "Merge \"ART: Fix two allocation/deallocation mismatches.\""
    },
    {
      "commit": "7cfbfe7752a074442ee5fbe469d377421cffe389",
      "tree": "90a248acbc9051a7ad7d4aaed2ee8b1422bc86c7",
      "parents": [
        "fc4a03d93e03de71e0c70c304c61ca08a47c1550",
        "99170c636dfae4908b102347cfe9f92bad1881cc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Sep 18 07:07:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 07:07:01 2015 +0000"
      },
      "message": "Merge \"Deoptimization support in optimizing compiler for setting local values\""
    },
    {
      "commit": "fc4a03d93e03de71e0c70c304c61ca08a47c1550",
      "tree": "829822ae453801966a2edbb6bc73fa519483de8b",
      "parents": [
        "dc25b96abb09f292cf6e580e49d4cea4c968c106",
        "a2c38644d96cbad4106c0165811d0f670d6cec8f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 18 01:58:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 01:58:23 2015 +0000"
      },
      "message": "Merge \"Add lock around interpreter string init reg map.\""
    },
    {
      "commit": "a2c38644d96cbad4106c0165811d0f670d6cec8f",
      "tree": "4ad15bed693ced09d99bb034175bdfe8cc3bb1c2",
      "parents": [
        "6766eae2d91e894b4ceab9f29cc983900e7bc0c7"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 17 17:29:01 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 17 18:33:16 2015 -0700"
      },
      "message": "Add lock around interpreter string init reg map.\n\nFixes intermittent test failures. Note that locks can\u0027t be held\nwhile the verifier is generating the map.\n\nChange-Id: Ie38d6bf0d9c5e81d66b8c167fde0e75a0565cea5\n"
    },
    {
      "commit": "2582e1ec39adc69bf29b60dba8c9d62b218fd741",
      "tree": "3820e461f235992811716d401faef3cff1863b56",
      "parents": [
        "2c2cbfd34839e61ccecabab5b7e882f891d26be0",
        "498b160f0cb61ea4756d8ce859ae73c522366458"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 17 21:55:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 21:55:46 2015 +0000"
      },
      "message": "Merge \"Allow null self only in DecodeWeakGlobalDuringShutdown().\""
    },
    {
      "commit": "6958e4f0f660deded126771f2e00386ee51de2f6",
      "tree": "f38b09b9e48c8b845fb34dba5311ea4640776a30",
      "parents": [
        "ca83cd09bde09dac73ed66f38dec4bc0bd6afb54"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 20:22:02 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 20:22:02 2015 +0100"
      },
      "message": "ART: Fix two allocation/deallocation mismatches.\n\nChange-Id: I5088126cbd5b5e4b461a449eecd5b3574883f413\n"
    },
    {
      "commit": "498b160f0cb61ea4756d8ce859ae73c522366458",
      "tree": "f582bfd38bc7e6fbbfd8fffc4a7f5449a962e7d5",
      "parents": [
        "fe9a1b05ea5a21b6d9a2e9e5081f5e80ff8a1ba2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 16 21:11:44 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 17 11:34:14 2015 -0700"
      },
      "message": "Allow null self only in DecodeWeakGlobalDuringShutdown().\n\nTo follow up CL 169855, allow a null current thread only in\nDecodeWeakGlobalDuringShutdown() as a special case rather than\nDecodeWeakGlobal(). This is to prevent a bug where null is accidentally\npassed to DecodeWeakGlobal().\n\nBug: 23897251\n\nChange-Id: I5e7bb78ec739b8bfcf77284ed321d507737ee33e\n"
    },
    {
      "commit": "6766eae2d91e894b4ceab9f29cc983900e7bc0c7",
      "tree": "4a3aac762e01c7933bcbffebb5277bde208e975b",
      "parents": [
        "930761fb7a4db70fbd5e75faa1fca07e5b494ae9",
        "7537437c6a2f89249a48e30effcc27d4e7c5a04f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 17:12:37 2015 +0000"
      },
      "message": "Merge \"Revert \"Optimize code generation of check-cast and instance-of.\"\""
    },
    {
      "commit": "7537437c6a2f89249a48e30effcc27d4e7c5a04f",
      "tree": "3f5f1d89f27d549cf40901f906ffab86bb05b520",
      "parents": [
        "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:19 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:19 2015 +0000"
      },
      "message": "Revert \"Optimize code generation of check-cast and instance-of.\"\n\nFailures with libcore tests.\n\nThis reverts commit 64acf303eaa2f32c0b1d8cfcbf044a822c5eec08.\n\nChange-Id: Ie6f323fcf5d86bae5c334c1352bb21f1bad60a88\n"
    },
    {
      "commit": "930761fb7a4db70fbd5e75faa1fca07e5b494ae9",
      "tree": "876c081193f54cb1663e680c20a5479eaa62f86f",
      "parents": [
        "ca83cd09bde09dac73ed66f38dec4bc0bd6afb54",
        "0389cd57de8faedb85b749656b8e1735a7bce002"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Sep 17 16:46:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 16:46:14 2015 +0000"
      },
      "message": "Merge \"Use arc4random_buf instead of getauxval(AT_RANDOM).\""
    },
    {
      "commit": "99170c636dfae4908b102347cfe9f92bad1881cc",
      "tree": "1ecff5dd69ea20b09e622cb88e7835a55dfa4be8",
      "parents": [
        "5836f8465ddd0a7f5cbeec9c30d739bd0619867f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Jul 06 11:10:37 2015 -0700"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Sep 17 17:07:22 2015 +0200"
      },
      "message": "Deoptimization support in optimizing compiler for setting local values\n\nDue to compiler optimizations, we may not always be able to update\nthe value of a local variable in a compiled frame (like a variable\nseen as constant by the compiler). To avoid that situation, we simply\ndeoptimize compiled frames updated by the debugger so they are\nexecuted by the interpreter with the updated value.\n\nWhen the debugger attempts to set a local variable (actually a DEX\nregister or a pair of registers) in a compiled frame, we allocate a\nShadowFrame associated to that frame (using its frame id) and set the\nnew value in that ShadowFrame. When we know we are about to continue\nthe execution of the compiled frame, we deoptimize the stack using\nthe preallocated ShadowFrame (instead of creating a new one). We\ninitialize it with the current value of all DEX registers except\nthe ones that have been set by the debugger. Therefore, the\nShadowFrame represent the runtime context modified by the debugger.\n\nBumps oat version to force recompilation.\n\nBug: 19944235\nChange-Id: I0ebe6241264f7a3be0f14ee4516c1f7436e04da6\n"
    },
    {
      "commit": "76c92ac73eeda2582caee39dd427ca035caf172b",
      "tree": "7d5baae363d7c380476ce8842ad1f43b59d48af5",
      "parents": [
        "a201d5eeb0903408df925a1ed1686a55238a274c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:39:16 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:45:39 2015 +0100"
      },
      "message": "Optimizing: Allow storing value objects in containers.\n\nChange-Id: Ic9c6b62e36706e571fd71c18d24d8e76ae2d5c7b\n"
    },
    {
      "commit": "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08",
      "tree": "1e9829deb0621b3cb9b275846c8d08381956fecf",
      "parents": [
        "017719a03c7c111a2069b5f85e3b9c81566c0902"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 14 22:20:29 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 14:45:39 2015 +0100"
      },
      "message": "Optimize code generation of check-cast and instance-of.\n\nOn x86/x64/arm/arm64. Improve code size of selected apks from 0.3% to 1%,\nand performance of DeltaBlue by 20%.\n\nChange-Id: Ib5799f7a53443cd880a121dd7f21932ae9f5c7aa\n"
    },
    {
      "commit": "0389cd57de8faedb85b749656b8e1735a7bce002",
      "tree": "3375f7755d8b6c6498cebde69722039c7309c01b",
      "parents": [
        "2a455e162cbba5dad610b02155957aa7759c9a34"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Sep 16 16:27:00 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Sep 16 18:35:41 2015 -0700"
      },
      "message": "Use arc4random_buf instead of getauxval(AT_RANDOM).\n\nReclaim the AT_RANDOM bytes used by ART for bionic.\n\nBug: http://b/23942752\nChange-Id: Iceddce7f08fa887a7bb6828d75ef21426c413863\n"
    },
    {
      "commit": "71bf8090663d02869cafafdd530976f7f2a9db7f",
      "tree": "70f910498031be392dd1f851cf38fe68bdc3154c",
      "parents": [
        "4919c34ead9a10d6cbdaba9967952c344b32e5b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 15 15:33:14 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 16 16:41:01 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in SsaBuilder.\n\nReplace GrowableArray with ArenaVector in SsaBuilder and\ntag allocations with a new arena allocation type.\n\nChange-Id: I27312c51d7be9d2ad02a974cce93b365c65c5fc4\n"
    },
    {
      "commit": "fa6b93c4b69e6d7ddfa2a4ed0aff01b0608c5a3a",
      "tree": "3528c88e104dac8e58ae5370ab066b8b1dd0218f",
      "parents": [
        "e295be4a95d7861f6ec179edf6565f58cad747cc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 15 10:15:55 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 16 13:21:33 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in HGraph.\n\nReplace GrowableArray with ArenaVector in HGraph and related\nclasses HEnvironment, HLoopInformation, HInvoke and HPhi,\nand tag allocations with new arena allocation types.\n\nChange-Id: I3d79897af405b9a1a5b98bfc372e70fe0b3bc40d\n"
    },
    {
      "commit": "c8950822095a4f5e6e87cfe7427d1bbb2a78de43",
      "tree": "e81a1b715ee349e06e2cbf19156f6fe78a93e036",
      "parents": [
        "fe9a1b05ea5a21b6d9a2e9e5081f5e80ff8a1ba2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 15 14:07:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 15 14:36:05 2015 -0700"
      },
      "message": "Clean up mod union table\n\nFixed some formatting and removed unused forward declarations.\n\nBug: 19534862\nChange-Id: Icfd5143e5bb7be0570248fd0f4bbf97125a9a35b\n"
    },
    {
      "commit": "fe9a1b05ea5a21b6d9a2e9e5081f5e80ff8a1ba2",
      "tree": "690581f69a480f79b90809c2d9f59f4429b0f4a2",
      "parents": [
        "1e9c1ffa2fc148fc8d0ee5eb1222dd894116e68d",
        "d2bb5ba17c5760aee5347de3c32b4f2f47a33d54"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 15 17:54:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 17:54:44 2015 +0000"
      },
      "message": "Merge \"Expect null referent in DequeuePendingReference().\""
    },
    {
      "commit": "d2bb5ba17c5760aee5347de3c32b4f2f47a33d54",
      "tree": "16cdbfc9f8a2c87b1453a63b882b28ec2c733c72",
      "parents": [
        "5da1ea29be0d5f4e8fc03c3c509f0474b53affd2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 14 15:10:50 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 15 10:33:03 2015 -0700"
      },
      "message": "Expect null referent in DequeuePendingReference().\n\nFollowing up on CL 170735.\n\nIt\u0027s possible that the referent may potentially be cleared which would\ncause a check failure. Avoid that.\n\nBug: 12687968\nBug: 23896462\nChange-Id: I8ccc5936b61ceacf250624681e65307f23ce0405\n"
    },
    {
      "commit": "1e9c1ffa2fc148fc8d0ee5eb1222dd894116e68d",
      "tree": "0caf77956d845e3f4e94cd994df0bc9626e1aeee",
      "parents": [
        "ada5ccd318fb02f9d5c7b20c9d6fed9ffa614961",
        "1147b9bd68323c753ed1a0b6106b205fd640c820"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 15 17:03:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 17:03:55 2015 +0000"
      },
      "message": "Merge \"Use image pointer size for profile info\""
    },
    {
      "commit": "1147b9bd68323c753ed1a0b6106b205fd640c820",
      "tree": "d14f8a47c66b78716d23b6cdcbc6e3e6da498361",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 14 18:50:08 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 15 10:02:40 2015 -0700"
      },
      "message": "Use image pointer size for profile info\n\nMay fix some random crashes in dex2oat due to cross compilation.\n\nChange-Id: I633652500e8c7dfec38044dffd07eb467973d82a\n"
    },
    {
      "commit": "f1fbd5220551aeae1025a1058fd501ad41167425",
      "tree": "241a01e13cf76b9004f627e936368b33e4bc1681",
      "parents": [
        "5836f8465ddd0a7f5cbeec9c30d739bd0619867f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 17:57:31 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 17:58:20 2015 +0100"
      },
      "message": "Rename parameter in ArtMethod::ToNativeQuickPc\n\nAddressing a nit for CL Idb2b34aabf1ac7249c30a00806af7d63d7e682dd.\n\nChange-Id: I1112312b90aa6123e7e9ca8f67132dd7cc57a62f\n"
    },
    {
      "commit": "5836f8465ddd0a7f5cbeec9c30d739bd0619867f",
      "tree": "363e49b9b7c866186c45ad508bf1a2ed82892d21",
      "parents": [
        "5559f9decadf23e887030fa35ad9d0fcc922046b",
        "26f728661a08062a373a3203b72dc2555c2aed2d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 15 16:54:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 16:54:02 2015 +0000"
      },
      "message": "Merge \"Cleanup thread access in StackVisitor\""
    },
    {
      "commit": "5559f9decadf23e887030fa35ad9d0fcc922046b",
      "tree": "1f697d6afc0da2a9ef77ce296b96b33b54af1e2a",
      "parents": [
        "0c1b297d586b71970da17c77774c27a6603118f6",
        "72f7b880d5d0057b9fac3a51ef3a0f22909bc633"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 16:52:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 16:52:02 2015 +0000"
      },
      "message": "Merge \"ART: Fix 004-ReferenceMap run test\""
    },
    {
      "commit": "72f7b880d5d0057b9fac3a51ef3a0f22909bc633",
      "tree": "5a5a92f0c52bd334f662ba2f51885540874973bb",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 17:00:52 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 17:50:43 2015 +0100"
      },
      "message": "ART: Fix 004-ReferenceMap run test\n\nThis patch adds a new option to ArtMethod::ToNativeQuickPc to select\nthe order of iteration over stack maps. The method is only used by\nthe runtime to find native_pc of catch blocks, but also by the\n004-ReferenceMap test which uses it to find native_pc of a safepoint.\n\nChange-Id: Idb2b34aabf1ac7249c30a00806af7d63d7e682dd\n"
    },
    {
      "commit": "c5b4b3285692b253937b9c0ad00bec4bf5c4255b",
      "tree": "f9770091b8ff801a78994423e30ee9c437afdea2",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 15 16:36:50 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 15 16:38:10 2015 +0100"
      },
      "message": "Use $ for f registers to please clang.\n\nChange-Id: I723ce53e344ee98334a556fbe231d8588fa7d1b6\n"
    },
    {
      "commit": "77a48ae01bbc5b05ca009cf09e2fcb53e4c8ff23",
      "tree": "780c7d6bdee784c2f8248979de348491cfb63b34",
      "parents": [
        "659562aaf133c41b8d90ec9216c07646f0f14362"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 12:34:04 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 12:34:04 2015 +0000"
      },
      "message": "Revert \"Revert \"ART: Register allocation and runtime support for try/catch\"\"\n\nThe original CL triggered b/24084144 which has been fixed\nby Ib72e12a018437c404e82f7ad414554c66a4c6f8c.\n\nThis reverts commit 659562aaf133c41b8d90ec9216c07646f0f14362.\n\nChange-Id: Id8980436172457d0fcb276349c4405f7c4110a55\n"
    },
    {
      "commit": "26f728661a08062a373a3203b72dc2555c2aed2d",
      "tree": "4f6e8168ac7ca422c7de3c7cdda6db21958358fd",
      "parents": [
        "b6f7dd330f115fc977d1d5a10122c41c9dd7c210"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 15 09:52:07 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 15 11:15:12 2015 +0200"
      },
      "message": "Cleanup thread access in StackVisitor\n\nAdds method StackVisitor::GetThread to give access to the visited\nThread* so we no longer need to copy that pointer in subclasses.\n\nAlso adds a few missing const and DISALLOW_COPY_AND_ASSIGN.\n\nChange-Id: I57649ee7742ef4ef1e01447ac2fbb66f977b22eb\n"
    },
    {
      "commit": "659562aaf133c41b8d90ec9216c07646f0f14362",
      "tree": "be1beae390262bf2f5a17bfa44de93081a849d07",
      "parents": [
        "b022fa1300e6d78639b3b910af0cf85c43df44bb"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 14 21:26:33 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 14 21:26:33 2015 +0000"
      },
      "message": "Revert \"ART: Register allocation and runtime support for try/catch\"\n\nBreaks libcore test org.apache.harmony.security.tests.java.security.KeyStorePrivateKeyEntryTest#testGetCertificateChain. Need to investigate.\n\nThis reverts commit b022fa1300e6d78639b3b910af0cf85c43df44bb.\n\nChange-Id: Ib24d3a80064d963d273e557a93469c95f37b1f6f\n"
    },
    {
      "commit": "b022fa1300e6d78639b3b910af0cf85c43df44bb",
      "tree": "780c7d6bdee784c2f8248979de348491cfb63b34",
      "parents": [
        "e481c006e8b055a31d9c7cff27f4145e57e3c113"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 17:47:48 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 14 20:42:58 2015 +0100"
      },
      "message": "ART: Register allocation and runtime support for try/catch\n\nThis patch completes a series of CLs that add support for try/catch\nin the Optimizing compiler. With it, Optimizing can compile all\nmethods containing try/catch, provided they don\u0027t contain catch loops.\nFuture work will focus on improving performance of the generated code.\n\nSsaLivenessAnalysis was updated to propagate liveness information of\ninstructions live at catch blocks, and to keep location information on\ninstructions which may be caught by catch phis.\n\nRegisterAllocator was extended to spill values used after catch, and\nto allocate spill slots for catch phis. Catch phis generated for the\nsame vreg share a spill slot as the raw value must be the same.\n\nLocation builders and slow paths were updated to reflect the fact that\nthrowing an exception may not lead to escaping the method.\n\nInstruction code generators are forbidden from using of implicit null\nchecks in try blocks as live registers need to be saved before handing\nover to the runtime.\n\nCodeGenerator emits a stack map for each catch block, storing locations\nof catch phis. CodeInfo and StackMapStream recognize this new type of\nstack map and store them separate from other stack maps to avoid dex_pc\nconflicts.\n\nAfter having found the target catch block to deliver an exception to,\nQuickExceptionHandler looks up the dex register maps at the throwing\ninstruction and the catch block and copies the values over to their\nrespective locations.\n\nThe runtime-support approach was selected because it allows for the\nbest performance in the normal control-flow path, since no propagation\nof catch phi values is necessary until the exception is thrown. In\naddition, it also greatly simplifies the register allocation phase.\n\nConstantHoisting was removed from LICMTest because it instantiated\n(now abstract) HConstant and was bogus anyway (constants are always in\nthe entry block).\n\nChange-Id: Ie31038ad8e3ee0c13a5bbbbaf5f0b3e532310e4e\n"
    },
    {
      "commit": "5da1ea29be0d5f4e8fc03c3c509f0474b53affd2",
      "tree": "f5b2962ce7d2024adabf8e974f117ff22da8a72c",
      "parents": [
        "329d1b5a5afd1f1520c3fd2e723f1245d953074d",
        "70c08d3c913ce2150cd620ea87b919f8eb5bd953"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 14 17:36:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 17:36:34 2015 +0000"
      },
      "message": "Merge \"Fix the DequeuePendingReference crash.\""
    },
    {
      "commit": "70c08d3c913ce2150cd620ea87b919f8eb5bd953",
      "tree": "7390f7bc8cfbf3ada1f387e470e51c4ff7531145",
      "parents": [
        "2d06e08d25bbf8eff1de945736a60810009e59ad"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 10 16:01:30 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 14 10:15:08 2015 -0700"
      },
      "message": "Fix the DequeuePendingReference crash.\n\nIn DequeuePendingReference, acknowledge a black/white Reference object\nin the queue if its referent was marked right after it\u0027s enqueued.\n\nBug: 12687968\nBug: 23896462\nChange-Id: I33c802e04e1688a54a70ad3935628e3853c46e44\n"
    },
    {
      "commit": "9af47e27674e70e7f82315d39de5bc659c4e1b83",
      "tree": "e1cf3d95c94721cf9e411e544f37105b684d7666",
      "parents": [
        "35717f8cfb6c1de5c89b2f9b990a050b2cbab66f",
        "6058455d486219994921b63a2d774dc9908415a2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 14 11:43:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 11:43:25 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag basic block allocations with their source.\""
    },
    {
      "commit": "35717f8cfb6c1de5c89b2f9b990a050b2cbab66f",
      "tree": "468d9275ebb774de9c373aea6387e5c55c4336e6",
      "parents": [
        "b6f7dd330f115fc977d1d5a10122c41c9dd7c210",
        "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "message": "Merge \"ART: Add some utilities for working with containers.\""
    },
    {
      "commit": "68cad90bf51337af0a6b3c0522a218ea5e3ecf43",
      "tree": "056a8ae56040f2d88e08d35bde7faf6fbc032a82",
      "parents": [
        "b09f33381174843214de40533366e162a0c6d768"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Sat Sep 12 16:04:42 2015 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Sat Sep 12 16:06:02 2015 -0700"
      },
      "message": "Remove unnecessary std::move from variant_map.h\n\nThis triggers Clang\u0027s pessimizing-move warning.\n\nChange-Id: Icb33643f28d1d159a87a17235c4d210209199dac\n"
    },
    {
      "commit": "4f55e22630d99ca0edd9e951e5ee96b57bb9b980",
      "tree": "84b7d55a6a7c31c09ed2865cc1bc2f4393476533",
      "parents": [
        "2d06e08d25bbf8eff1de945736a60810009e59ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 04 13:26:21 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 11 13:14:20 2015 -0700"
      },
      "message": "Add and use ScopedSuspendAll\n\nUsage replaces most SuspendAll and ResumeAll calls.\n\nChange-Id: I355683a5365876242cea85a656dcb58455f7a294\n"
    },
    {
      "commit": "2d06e08d25bbf8eff1de945736a60810009e59ad",
      "tree": "27c10f4fc30a85947ac0e3189b115035107a7ff0",
      "parents": [
        "e2cb7f297dfeb1a6e19c3b8d45b742427054fa56",
        "501fd635a557645ab05f893c56e1f358e21bab82"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 11 17:50:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 11 17:50:01 2015 +0000"
      },
      "message": "Merge \"ART: Fix Quick-style LR vs PC core spill mask bug\""
    },
    {
      "commit": "e2cb7f297dfeb1a6e19c3b8d45b742427054fa56",
      "tree": "b5501cd32e859351b5f058da56e62accb03a3821",
      "parents": [
        "15982a940dd0032e225f8d2829609d7a35a3d842",
        "520633bebd2bf4d70884d30f179dbde9f275aac6"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Sep 11 15:40:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 11 15:40:48 2015 +0000"
      },
      "message": "Merge \"Support deoptimization on exception\""
    }
  ],
  "next": "15982a940dd0032e225f8d2829609d7a35a3d842"
}
