)]}'
{
  "log": [
    {
      "commit": "fda043241caada72fbf1215ac8c6eb5ad1ad44e7",
      "tree": "cc5a313d2df4bc0e295990b267abe3f06c6d3401",
      "parents": [
        "00bcbcfdc3ba28b4b985d8a8029d677579e902ff"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 11 18:45:50 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 11 18:47:45 2015 +0000"
      },
      "message": "ART: Add comments to Scoped-/ArenaAllocator.\n\nChange-Id: Iba7350114fb998ac9ee1466ef12f4a5024a18e8e\n"
    },
    {
      "commit": "de40d478930d0889a2aea5cbf58aa63da24e5dfa",
      "tree": "8efcc1c3e3850be151ce6d5046b1a9b3679d023f",
      "parents": [
        "fd948240e02c005380e15155f8e50a175e7cb343"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 17:47:48 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 26 08:54:12 2015 -0700"
      },
      "message": "Use arenas for the verifier\n\nImprovements are from using arenas for verifier. The things that\nwere moved into arenas are register lines, reg types, and reg type\ndescriptors.\n\nAlso some minor cleanup. Fixed double space formatting error in\nstring piece.\n\n\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nBefore:\n\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\ncompile GmsCore 50x on host -j1:\nreal  3m5.510s\nuser  2m48.139s\nsys 0m11.753s\n\n50 random APKs:\nreal  1m18.157s\nuser  1m8.167s\nsys 0m8.071s\n\nRAM (GmsCore):\n(threads: 1) arena alloc\u003d0B java alloc\u003d27MB native alloc\u003d64MB free\u003d792KB\n(threads: 4) arena alloc\u003d0B java alloc\u003d27MB native alloc\u003d64MB free\u003d397KB\nPerf:\n\n\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\nAfter:\n\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\ncompile GmsCore 50x on host -j1:\nreal  2m31.455s\nuser  2m14.784s\nsys 0m10.888s\n\n50 random APKs:\nSpeed up from arena allocating:\nreal  1m12.094s\nuser  1m2.325s\nsys 0m7.872s\n\nSpeed up from areans + CreateFindClassDefIndex + unordered_map for DexFileVerifier.\nreal  1m8.654s\nuser  0m58.955s\nsys 0m7.777s\n\nRAM (GmsCore):\n(threads: 1) arena alloc\u003d1049KB java alloc\u003d27MB native alloc\u003d65MB free\u003d538KB\n(threads: 4) arena alloc\u003d4MB java alloc\u003d27MB native alloc\u003d69MB free\u003d650KB\n\nPerf on host key results:\n_int_malloc: 3.60% -\u003e 1.39%\nmalloc: 1.48% -\u003e 0.65%\n_int_free: 1.59% -\u003e 0.61%\nRegTypeCache::FromClass: 1.47% -\u003e 0.86%\nmalloc_consolidate: 0.89% -\u003e 0.63%\n\nReal speed up is ~22% on GmsCore, ~14% on the set of 60 APKs.\n\nBug: 10921004\n\nChange-Id: If13d4ab4284a176f93a26a412549b6b1149dfb16\n"
    },
    {
      "commit": "8df69d42a9e3ccd9456ff72fac8dbd1999f98755",
      "tree": "b2d7617d4d2e1ae80ab7024b47802dafbaee3b3a",
      "parents": [
        "823e693aa946ba75cd047429e1290011a2ed8729"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 22 15:40:58 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 22 16:37:46 2015 -0700"
      },
      "message": "Revert \"Revert \"load store elimination.\"\"\n\nThis reverts commit 8030c4100d2586fac39ed4007c61ee91d4ea4f25.\n\nChange-Id: I79558d85484be5f5d04e4a44bea7201fece440f0\n"
    },
    {
      "commit": "4b8f1ecd3aa5a29ec1463ff88fee9db365f257dc",
      "tree": "d113f8a5c6b61c078256cf15c7cbb9f7c8de0390",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 26 18:34:03 2015 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 15 12:22:39 2015 -0700"
      },
      "message": "Use ATTRIBUTE_UNUSED more.\n\nUse it in lieu of UNUSED(), which had some incorrect uses.\n\nChange-Id: If247dce58b72056f6eea84968e7196f0b5bef4da\n"
    },
    {
      "commit": "8030c4100d2586fac39ed4007c61ee91d4ea4f25",
      "tree": "9d16c721b449e84aa04681440a79b85d86fa2aa2",
      "parents": [
        "589dac7f0ce078d19aad7e35bb0195c47ddf01d2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 10:30:18 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 10:30:18 2015 +0000"
      },
      "message": "Revert \"load store elimination.\"\n\nBreaks libcore tests:\n\n  libcore.java.lang.ref.FinalizeTest#testWatchdogDoesNotFailForObjectsThatAreNearTheDeadline\n  libcore.java.util.ResourceLeakageDetectorTest#testDetectsUnclosedCloseGuard\n  org.apache.harmony.tests.java.lang.ref.ReferenceTest#test_finalizeReferenceInteraction\n\nThis reverts commit 589dac7f0ce078d19aad7e35bb0195c47ddf01d2.\n\nChange-Id: I55115765c10762d5bc152d3425e4622560d8b9f4\n"
    },
    {
      "commit": "589dac7f0ce078d19aad7e35bb0195c47ddf01d2",
      "tree": "5c77fb845997b21ce1aa97b1fa176c64a76e14f1",
      "parents": [
        "d2e0dd179fd2e8c6c820194e187fc5e9164154ff"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 24 11:21:42 2015 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 15 01:36:34 2015 -0700"
      },
      "message": "load store elimination.\n\nThis adds a pass to eliminate some unnecessary heap loads/stores. It\nfirst collects heap locations and then tracks values stored to those heap\nlocations. Alias analysis is done based on offset, type, singleton,\npre-existence, etc.\n\nChange-Id: I11a9d8ef20d1b2f245607eb25118e9aff9be472a\n"
    },
    {
      "commit": "655e585073ac271cc9afa7c9d6ff5ab4dbe4b72e",
      "tree": "f02b64d048ae4cd7fa51774f220192ddeef42e1e",
      "parents": [
        "89792b9c5ed09dda2937944b69b1b2016807b6aa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 12 10:38:28 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 12 13:24:31 2015 +0100"
      },
      "message": "Optimizing: Move GraphChecker memory allocations to arena.\n\nBug: 18120045\nChange-Id: I3934158e6ea4868d9baa1dfcc53b603ca6c521e2\n"
    },
    {
      "commit": "7bda3b600d74c9a5746840ebb8534443e486615a",
      "tree": "857e13b3bd5a0435b8f2bf8fc15654df7b21810a",
      "parents": [
        "5928931541e07b4c98e677cfca3088106b2b9e64"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 07 12:44:31 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 07 13:49:42 2015 +0100"
      },
      "message": "Revert \"Quick: Work around large frame sizes for x86_64.\"\n\nInstead, move the MEMORY_TOOL_MAKE_* calls out-of-line.\n\nBug: 24729377\n\nThis reverts commit d4cf1e4fe0624b99df22ed5556dc1d042b32a7e0.\n\nChange-Id: I9bccc8bd4a691a2d018b84de8b95bc68fafad4e1\n"
    },
    {
      "commit": "35ef974da353b13938fb0f3272c03070ad728431",
      "tree": "eebc82d0ab39506f48f2149e312fcd7065dab3f0",
      "parents": [
        "3b6b587934659bc4428557ac174ccce3731fd91a",
        "2a408a3bef330551818f9cec9a7c5aa7a3f1129e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 06 12:53:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 06 12:53:41 2015 +0000"
      },
      "message": "Merge \"ART: Mark deallocated arena memory as inaccessible.\""
    },
    {
      "commit": "2a408a3bef330551818f9cec9a7c5aa7a3f1129e",
      "tree": "732bf331e38609a75679b101a1e8a6b65dfe576e",
      "parents": [
        "b4fd73139aca48d7319221aeefe8bae93a98c56d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 18 14:11:00 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 30 13:41:46 2015 +0100"
      },
      "message": "ART: Mark deallocated arena memory as inaccessible.\n\nMark arena and scoped arena memory freed by allocator\nadapters as inaccessible. This can help catch accesses to\nold storage of a container, for example the old data of an\nArenaVector\u003c\u003e that\u0027s been resized.\n\nTogether with debug-mode enforcement of destruction of all\nscoped arena containers, this provides strong verification\nof their memory usage. However, this does not apply to the\nnormal (non-scoped) arena memory held by arena containers\nas they are typically not destroyed if they are themselves\nlocated in the arena. ArenaBitVector memory, whether in\nnormal or scoped arena, isn\u0027t marked either.\n\nChange-Id: I4d2a80fedf7ceb7d4ce24ee8e7bcd53513171388\n"
    },
    {
      "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": "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": "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": "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": "6058455d486219994921b63a2d774dc9908415a2",
      "tree": "3d205227f3ff54cd3a50bc5c0e7cb3ad6c175b86",
      "parents": [
        "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:35:12 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 18:09:49 2015 +0100"
      },
      "message": "Optimizing: Tag basic block allocations with their source.\n\nReplace GrowableArray with ArenaVector in HBasicBlock and,\nto track the source of allocations, assign one new and two\nQuick\u0027s arena allocation types to these vectors. Rename\nkArenaAllocSuccessor to kArenaAllocSuccessors.\n\nBug: 23736311\nChange-Id: Ib52e51698890675bde61f007fe6039338cf1a025\n"
    },
    {
      "commit": "145acc5361deb769eed998f057bc23abaef6e116",
      "tree": "3d66a0b44e1ac927156eec6e6488de5fd52b982b",
      "parents": [
        "91e11c0c840193c6822e66846020b6647de243d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:33:25 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:33:25 2015 +0000"
      },
      "message": "Revert \"Optimizing: Tag basic block allocations with their source.\"\n\nReverting so that we can have more discussion about the STL API.\n\nThis reverts commit 91e11c0c840193c6822e66846020b6647de243d5.\n\nChange-Id: I187fe52f2c16b6e7c5c9d49c42921eb6c7063dba\n"
    },
    {
      "commit": "91e11c0c840193c6822e66846020b6647de243d5",
      "tree": "0c5398ef59c464c1848afd0113c74b6aeb75cf42",
      "parents": [
        "f9f6441c665b5ff9004d3ed55014f46d416fb1bb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 17:03:22 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:09:37 2015 +0100"
      },
      "message": "Optimizing: Tag basic block allocations with their source.\n\nReplace GrowableArray with ArenaVector in HBasicBlock and,\nto track the source of allocations, assign one new and two\nQuick\u0027s arena allocation types to these vectors. Rename\nkArenaAllocSuccessor to kArenaAllocSuccessors.\n\nBug: 23736311\nChange-Id: I984aef6e615ae2380a532f5c6726af21015f43f5\n"
    },
    {
      "commit": "f9f6441c665b5ff9004d3ed55014f46d416fb1bb",
      "tree": "3d66a0b44e1ac927156eec6e6488de5fd52b982b",
      "parents": [
        "fe3879e6011f629d0dd6b04fab00b9496bd4ea08"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 14:05:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 20:16:58 2015 +0100"
      },
      "message": "Optimizing: Tag Arena allocations with their source.\n\nThis adds the ability to track where we allocate memory\nwhen the kArenaAllocatorCountAllocations flag is turned on.\n\nAlso move some allocations from native heap to the Arena\nand remove some unnecessary utilities.\n\nBug: 23736311\nChange-Id: I1aaef3fd405d1de444fe9e618b1ce7ecef07ade3\n"
    },
    {
      "commit": "3887c468d731420e929e6ad3acf190d5431e94fc",
      "tree": "67dacb849e722e33e118b97714a48e467c06cbd5",
      "parents": [
        "6a5037eb3340e4c981fd7de3ff45167ee5b7fc82"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 12 18:15:42 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 12 18:15:42 2015 +0100"
      },
      "message": "Remove unnecessary `explicit` qualifiers on constructors.\n\nChange-Id: Id12e392ad50f66a6e2251a68662b7959315dc567\n"
    },
    {
      "commit": "90443477f9a0061581c420775ce3b7eeae7468bc",
      "tree": "8c74b81dfae162e0fd0ccf8d5ac50827ba815174",
      "parents": [
        "6078aec213dfaf111c29969706e8e5967cfc9bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 16 20:32:27 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 15:13:56 2015 -0700"
      },
      "message": "Move to newer clang annotations\n\nAlso enable -Wthread-safety-negative.\n\nChanges:\nSwitch to capabilities and negative capabilities.\n\nFuture work:\nUse capabilities to implement uninterruptible annotations to work\nwith AssertNoThreadSuspension.\n\nBug: 20072211\n\nChange-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33\n"
    },
    {
      "commit": "1e13374baf7dfaf442ffbf9809c37c131d681eaf",
      "tree": "9a8a53295a8389d7ec10accf3efb8785a97a3599",
      "parents": [
        "f68c8545382925062da2b87169ca2b5314f0b431"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed May 20 12:30:59 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 13 17:38:40 2015 -0700"
      },
      "message": "Generalize Valgrind annotations in ART to support ASan.\n\nAlso add redzones around non-fixed mem_map(s).\nAlso extend -Wframe-larger-than limit to enable arm64 ASan build.\n\nChange-Id: Ie572481a25fead59fc8978d2c317a33ac418516c\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "80afd02024d20e60b197d3adfbb43cc303cf29e0",
      "tree": "ef054c7b4f2a739f7cf063e0bc4c501c2c7e41b5",
      "parents": [
        "559b178e34c5d92e7932f92e5d8a981ac334606f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 19 18:08:00 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 15:59:02 2015 +0100"
      },
      "message": "ART: Clean up arm64 kNumberOfXRegisters usage.\n\nAvoid undefined behavior for arm64 stemming from 1u \u003c\u003c 32 in\nloops with upper bound kNumberOfXRegisters.\n\nCreate iterators for enumerating bits in an integer either\nfrom high to low or from low to high and use them for\n\u003carch\u003eContext::FillCalleeSaves() on all architectures.\n\nRefactor runtime/utils.{h,cc} by moving all bit-fiddling\nfunctions to runtime/base/bit_utils.{h,cc} (together with\nthe new bit iterators) and all time-related functions to\nruntime/base/time_utils.{h,cc}. Improve test coverage and\nfix some corner cases for the bit-fiddling functions.\n\nBug: 13925192\nChange-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7\n"
    },
    {
      "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": "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": "c6201fa2ec66a218c4d0320fbcddd2fbb65cfa4a",
      "tree": "d7e2742906c340d61a7bf24aab6e0b343e0580d2",
      "parents": [
        "4cfe74cb50b73f5f4b6dd32aabed55d044afe348"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:06:33 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:59:33 2015 -0700"
      },
      "message": "Add way to select arena type at runtime\n\nWe now use MemMap for JIT, and malloc for everything else. This\nshould help fix the allegedly regressed compile times.\n\nChange-Id: I6a6552738933f9d7ee3bd23f45e310818b19b70d\n"
    },
    {
      "commit": "9b34b244ecddd8a35c922ed87bc3df0ca4db0282",
      "tree": "cb73f09a77a1ba58331eb299bb8dd1e6eafb6eaa",
      "parents": [
        "81d38f74219774d87389f83f23595ffc8fe814b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 11:30:17 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 14:25:02 2015 -0700"
      },
      "message": "Trim arenas for JIT\n\nMoved arena pool into the runtime. Added arena trimming to arena\npool. When called, this madvises the used memory.\n\nChanged the JIT compiler to trim arenas after compilation. Changed\nthe arena mmap name to dalvik-LinearAlloc.\n\nNative PSS before:\n  80353 kB: Native\n  80775 kB: Native\n  78116 kB: Native\nAfter:\n  73357 kB: Native\n  70181 kB: Native\n  70306 kB: Native\n\nBug: 17950037\nBug: 17643507\nBug: 19264997\n\nChange-Id: I63e7a898fd6e909c2c677fa57b5917a7b1398930\n"
    },
    {
      "commit": "b666f4805c8ae707ea6fd7f6c7f375e0b000dba8",
      "tree": "a61439a9bcb555dc575286f3e0bb5e50ce185982",
      "parents": [
        "39109a06015c91188232e59fa9e60e0915d24cd7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 18 14:33:14 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 19 09:59:50 2015 -0800"
      },
      "message": "Move arenas into runtime\n\nMoved arena pool into the runtime.\n\nMotivation:\nAllow GC to use arena allocators, recycle arena pool for linear alloc.\n\nBug: 19264997\nChange-Id: I8ddbb6d55ee923a980b28fb656c758c5d7697c2f\n"
    },
    {
      "commit": "e4fcc5ba2284c201c022b52d27f7a1201d696324",
      "tree": "2f490060978baeb85c79d6184fcc08135f506637",
      "parents": [
        "8240a8af33aedea9a4fe5c3b394d7c025ad081fb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 13 10:28:29 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 13 11:29:04 2015 +0000"
      },
      "message": "Clean up Scoped-/ArenaAlocator array allocations.\n\nChange-Id: Id718f8a4450adf1608306286fa4e6b9194022532\n"
    },
    {
      "commit": "49285c596bb48a52c42eac4005707e441ef916a7",
      "tree": "2e26792a861d33d9b820fbdd3aae3694d2cc786f",
      "parents": [
        "b5af2641acf9d2e247baaa2ac7674f91b801878d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 15:43:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 17:21:44 2014 -0800"
      },
      "message": "Print memory usage in dex2oat shutdown\n\nExample on mako:\nI/dex2oat (31071): dex2oat took 31.195s (threads: 2) arena alloc\u003d1013KB java alloc\u003d13MB native alloc\u003d32MB free\u003d1490KB\n\nBug: 18069309\n\nChange-Id: I08eac00842be35d4e659bddc8513f2062be725c9\n\n(cherry picked from commit 3029df6d212894647ba0e5c23443c40912c6ecc8)\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "e39c54ea575ec710d5e84277fcdcc049f8acb3c9",
      "tree": "407209e732961074488043f6ccba8f1d692298a6",
      "parents": [
        "b36bba6d35e88687852b108c8d4b73b3ec2a9397"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 22 14:50:02 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 23 14:42:17 2014 +0100"
      },
      "message": "Deprecate GrowableArray, use ArenaVector instead.\n\nPurge GrowableArray from Quick and Portable.\nRemove GrowableArray\u003cT\u003e::Iterator.\n\nChange-Id: I92157d3a6ea5975f295662809585b2dc15caa1c6\n"
    },
    {
      "commit": "8081d2b8d7a743729557051d0294e040e61c747a",
      "tree": "37c2bd8616831df3a0f9f2df0932ebb517dbcd3d",
      "parents": [
        "8f1dc7a20049ba6e2f3c7f800908bff811cdbea1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 31 15:33:43 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 05 09:45:24 2014 +0100"
      },
      "message": "Create allocator adapter for using Arena in std containers.\n\nCreate ArenaAllocatorAdapter, similar to the existing\nScopedArenaAllocatorAdapter, for allocating memory for\nstandard containers via the ArenaAllocator. Add the ability\nto specify allocation kind rather than just kArenaAllocSTL\nto both adapters. Move the scoped arena allocator to the\nscoped_arena_containers.h header file.\n\nDefine template aliases for containers using the new adapter\nand change a few MIRGraph and Mir2Lir members to use them.\n\nChange-Id: I9bbc50248e0fed81729497b848cb29bf68444268\n"
    },
    {
      "commit": "8dea81ca9c0201ceaa88086b927a5838a06a3e69",
      "tree": "6a074462c1c13d23aa21cef3f4d2d1a7a880de32",
      "parents": [
        "3e1e549c564045d852ace46388eb06427d63e6ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 06 14:50:36 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 12 18:25:00 2014 +0100"
      },
      "message": "Rewrite use/def masks to support 128 bits.\n\nReduce LIR memory usage by holding masks by pointers in the\nLIR rather than directly and using pre-defined const masks\nfor the common cases, allocating very few on the arena.\n\nChange-Id: I0f6d27ef6867acd157184c8c74f9612cebfe6c16\n"
    },
    {
      "commit": "22a0ef8fbe78577ad4127e5becf20b3afa797478",
      "tree": "968dd8f4182dde285285cb38db95d56c77c70edf",
      "parents": [
        "608f63bae4ed0dc0cd6462d0df3d15c28f37f0b2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 10 14:47:51 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 10 14:47:51 2014 +0100"
      },
      "message": "Round up arena allocations to 8 bytes.\n\nPrevent SIGBUS/BUS_ADRALN when we use the arena for classes\nwith 64-bit alignment.\n\nChange-Id: I5382ed7072fcfb2349f61558e1fd8257315ee336\n"
    },
    {
      "commit": "a7062e05e6048c7f817d784a5b94e3122e25b1ec",
      "tree": "a5d6b64ae6d5352f761fc2547bda863281adbe40",
      "parents": [
        "8b5b1e5593ffa77c393e4172b71a3d5a821d2ed8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 22 12:50:17 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 26 11:31:38 2014 +0100"
      },
      "message": "Add a linear scan register allocator to the optimizing compiler.\n\nThis is a \"by-the-book\" implementation. It currently only deals\nwith allocating registers, with no hint optimizations.\n\nThe changes remaining to make it functional are:\n- Allocate spill slots.\n- Resolution and placements of Move instructions.\n- Connect it to the code generator.\n\nChange-Id: Ie0b2f6ba1b98da85425be721ce4afecd6b4012a4\n"
    },
    {
      "commit": "660188264dee3c8f3510e2e24c11816c6b60f197",
      "tree": "cd18ee6c9328650110f06d14905468ea320342b4",
      "parents": [
        "2a12ad460af139a03c3e9bf5fc7886a7521b333e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 05 20:47:19 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 05 20:47:19 2014 -0700"
      },
      "message": "ART: Use utils.h::RoundUp instead of explicit bit-fiddling\n\nChange-Id: I249a2cfeb044d3699d02e13d42b8e72518571640\n"
    },
    {
      "commit": "bd9e9db27b6a38839f1d55fc4ff365e41ea20243",
      "tree": "d647043dc66745d7492758b9e0fc8d660da54c83",
      "parents": [
        "b166d8407622e842eb0dc9302ede01cdea182149"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 07 19:41:05 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 07 19:48:39 2014 +0000"
      },
      "message": "Fix clang errors in ArenaAllocator.\n\nChange-Id: Ib0fa290fd46ff9288f86cda9be2d1c1faf99b964\n"
    },
    {
      "commit": "83cc7ae96d4176533dd0391a1591d321b0a87f4f",
      "tree": "6b3c607119c1dc2850810f8463dfd968c486fba4",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 18:02:05 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 06 15:37:40 2014 +0000"
      },
      "message": "Create a scoped arena allocator and use that for LVN.\n\nThis saves more than 0.5s of boot.oat compilation time\non Nexus 5.\n\nTODO: Move other stuff to the scoped allocator. This CL\nalone increases the peak memory allocation. By reusing\nthe memory for other parts of the compilation we should\nreduce this overhead.\n\nChange-Id: Ifbc00aab4f3afd0000da818dfe68b96713824a08\n"
    },
    {
      "commit": "818f2107e6d2d9e80faac8ae8c92faffa83cbd11",
      "tree": "0a92aa1ba319115d8af05badc150d1e9e8e5e4ca",
      "parents": [
        "a2a5354cd95faf242a70b99b7b11f8fdb7cb7c1b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 16:43:35 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 19:22:41 2014 +0000"
      },
      "message": "Re-apply: Initial check-in of an optimizing compiler.\n\nThe classes and the names are very much inspired by V8/Dart.\nIt currently only supports the RETURN_VOID dex instruction,\nand there is a pretty printer to check if the building of the\ngraph is correct.\n\nChange-Id: I28e125dfee86ae6ec9b3fec6aa1859523b92a893\n"
    },
    {
      "commit": "1af0c0b88a956813eb0ad282664cedc391e2938f",
      "tree": "22c31a72dc2d0c711056b4d4b1388a64de103261",
      "parents": [
        "68a5fefa90f03fdf5a238ac85c9439c6b03eae96"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 17:30:16 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 17:30:16 2014 +0000"
      },
      "message": "Revert \"Initial check-in of an optimizing compiler.\"\n\ng++ warnings turned into errors.\n\nThis reverts commit 68a5fefa90f03fdf5a238ac85c9439c6b03eae96.\n\nChange-Id: I09bb95d9cc13764ca8a266c41af04801a34b9fd0\n"
    },
    {
      "commit": "68a5fefa90f03fdf5a238ac85c9439c6b03eae96",
      "tree": "0f3ba23e5d3e2bbd211023fd7ce0740f694e7215",
      "parents": [
        "0bf2ed98bc7d529a28ab470d36308ee2358f5a1c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 16:43:35 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 16:48:02 2014 +0000"
      },
      "message": "Initial check-in of an optimizing compiler.\n\nThe classes and the names are very much inspired by V8/Dart.\nIt currently only supports the RETURN_VOID dex instruction,\nand there is a pretty printer to check if the building of the\ngraph is correct.\n\nChange-Id: Id5ef1b317ab997010d4e3888e456c26bef1ab9c0\n"
    },
    {
      "commit": "75165d015cc737f951d4264f8c55012298abdb18",
      "tree": "7456a0d7ae25f17172791637aecca68728723429",
      "parents": [
        "ab280c02ab94734c38415164ba880881e104ae38"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 14:00:31 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 14:10:46 2013 -0700"
      },
      "message": "Add valgrind support to compiler arena allocator.\n\nChange-Id: Id9974301d3810bfac968ee562b01a11098e402c2\n"
    },
    {
      "commit": "f6c4b3ba3825de1dbb3e747a68b809c6cc8eb4db",
      "tree": "c9dc76dfbd6067ae4de6650be9eb948535c77bb5",
      "parents": [
        "fb2451b516f8411756fe7b6f91b5534cf3ce8682"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Aug 24 16:11:37 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 26 16:23:51 2013 -0700"
      },
      "message": "New arena memory allocator.\n\nBefore we were creating arenas for each method. The issue with doing this\nis that we needed to memset each memory allocation. This can be improved\nif you start out with arenas that contain all zeroed memory and recycle\nthem for each method. When you give memory back to the arena pool you do\na single memset to zero out all of the memory that you used.\n\nAlways inlined the fast path of the allocation code.\n\nRemoved the \"zero\" parameter since the new arena allocator always returns\nzeroed memory.\n\nHost dex2oat time on target oat apks (2 samples each).\nBefore:\nreal\t1m11.958s\nuser\t4m34.020s\nsys\t1m28.570s\n\nAfter:\nreal\t1m9.690s\nuser\t4m17.670s\nsys\t1m23.960s\n\nTarget device dex2oat samples (Mako, Thinkfree.apk):\nWithout new arena allocator:\n0m26.47s real     0m54.60s user     0m25.85s system\n0m25.91s real     0m54.39s user     0m26.69s system\n0m26.61s real     0m53.77s user     0m27.35s system\n0m26.33s real     0m54.90s user     0m25.30s system\n0m26.34s real     0m53.94s user     0m27.23s system\n\nWith new arena allocator:\n0m25.02s real     0m54.46s user     0m19.94s system\n0m25.17s real     0m55.06s user     0m20.72s system\n0m24.85s real     0m55.14s user     0m19.30s system\n0m24.59s real     0m54.02s user     0m20.07s system\n0m25.06s real     0m55.00s user     0m20.42s system\n\nCorrectness of Thinkfree.apk.oat verified by diffing both of the oat files.\n\nChange-Id: I5ff7b85ffe86c57d3434294ca7a621a695bf57a9\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "9b7085a4e7c40e7fa01932ea1647a4a33ac1c585",
      "tree": "629bf8e99c0b898927b8808e3265e69abad4212c",
      "parents": [
        "50af979315413e7941ee553ad69c7ccc7d984621"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 15:15:21 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 15:27:37 2013 -0700"
      },
      "message": "Fix cpplint readability/braces issues\n\nChange-Id: I56b88956510077b0e13aad4caee8898313fab55b\n"
    },
    {
      "commit": "0cd7ec2dcd8d7ba30bf3ca420b40dac52849876c",
      "tree": "525a0f99f9381156367c988133b5d51d5dfef6f7",
      "parents": [
        "f69863b3039fc621ff4250e262d2a024d5e79ec8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 23:40:20 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 00:12:43 2013 -0700"
      },
      "message": "Fix cpplint whitespace/blank_line issues\n\nChange-Id: Ice937e95e23dd622c17054551d4ae4cebd0ef8a2\n"
    },
    {
      "commit": "93ba893c20532990a430741e0a97212900094e8c",
      "tree": "019990a1957562c1f573c77297df5923cce98f47",
      "parents": [
        "b1eba213afaf7fa6445de863ddc9680ab99762ea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:31:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:46:12 2013 -0700"
      },
      "message": "Fix cpplint runtime/explicit issues\n\nChange-Id: I352ba0b427f1ff9b22887693952b180eae0839ba\n"
    },
    {
      "commit": "2ce745c06271d5223d57dbf08117b20d5b60694a",
      "tree": "08ca327d1f1c8266fafb11422cfad6982f21e0bb",
      "parents": [
        "fc0e3219edc9a5bf81b166e82fd5db2796eb6a0d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 17:44:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:46:11 2013 -0700"
      },
      "message": "Fix cpplint whitespace/braces issues\n\nChange-Id: Ide80939faf8e8690d8842dde8133902ac725ed1a\n"
    },
    {
      "commit": "fc0e3219edc9a5bf81b166e82fd5db2796eb6a0d",
      "tree": "5fc7f5b941724a62f8e3411df09fae431ff5e3cf",
      "parents": [
        "56d947fbc9bc2992e2f93112fafb73e50d2aaa7a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 14:40:12 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 16:49:05 2013 -0700"
      },
      "message": "Fix multiple inclusion guards to match new pathnames\n\nChange-Id: Id7735be1d75bc315733b1773fba45c1deb8ace43\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "a5abf7091711eed1e9f1d0e1538fe9963ebdf31c",
      "tree": "e256df83ca632744d144854403a326d90cb683a7",
      "parents": [
        "bf47e5f28b1aa39748dce8ac5abbabca1baee093"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Apr 12 14:39:29 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon May 13 12:34:28 2013 -0700"
      },
      "message": "Compiler: replace DOM traversal computation\n\nOriginally the old trace JIT used a few recursive graph walking\nalgorithms - which was perfectly reasonable given that the graph\nsize was capped at a few dozen nodes at most.  These were replaced\nwith iterative walk order computations  - or at least I thought\nthey all were.  Missed one of them, which caused a stack overflow\non a pathologically large method compilation.\n\nRenaming of some arena_allocator items for consistency and clarity.\nMore detailed memory usage logging.  Reworked the allocator to waste\nless space when an allocation doesn\u0027t fit and a new block must be\nallocated.\n\nChange-Id: I4d84dded3c47819eefa0de90ebb821dd12eb8be8\n"
    },
    {
      "commit": "e7a5b7d3fcc3af100fec13af057eecaff1037f2c",
      "tree": "17c679d40aaaea7ddb53fdc61494c8d243af9ce5",
      "parents": [
        "1bd4b4ca7f4f44c55ded050e5a6be09811e1b283"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 20:09:02 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 20:09:02 2013 -0700"
      },
      "message": "Fix memory leak of and use without initialization.\n\nArena allocator\u0027s empty arena needs to be released in a destructor, this\nremoves the neeed for Reset.\nThe DataflowIterator needs to clear changed_ upon construction to avoid use\nwithout initialization.\n\nChange-Id: I56e3cb8c3e06c08ab0ff42447bd6e05792fc70af\n"
    },
    {
      "commit": "862a76027076c341c26aa6cd4a30a7cdd6dc2143",
      "tree": "4a683c0aac1af88db8138cdcb36ecd2d006f2f7a",
      "parents": [
        "5fa60c3db4208df407113b5a69d295a9c93d53b1"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Apr 05 10:58:54 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Apr 10 14:04:37 2013 -0700"
      },
      "message": "Compiler: continuing refactoring\n\nMoving the arena memory allocation mechanism into it\u0027s own class as\na prelude to cleaning up the MIR and LIR data structures.\n\nReworked bit vector as a class using placement new w/ the arena\nallocator.\n\nReworked GrowableList as a class template using the new arena\nallocator and renamed to GrowableArray.\n\nChange-Id: I639c4c08abe068094cae2649e04f58c8addd0015\n"
    }
  ]
}
