)]}'
{
  "log": [
    {
      "commit": "2f8da3e9ff60e5cb2a3fdf57dbcb67f513b9c2c2",
      "tree": "cfe10d3409b9cdd5c9453c6fbd12854039ac5ca9",
      "parents": [
        "9623c6668962559e818d1e7f05a58dcb96c71fa9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 15:37:02 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 16 12:37:09 2014 -0700"
      },
      "message": "Decrease target utilization for foreground apps.\n\nGC time in FormulaEvaluationActions.EvaluateAndApplyChanges goes from\n26.1s to 23.2s. Benchmark score goes down ~50 in\nFormulaEvaluationActions.EvaluateAndApplyChanges, and up ~50 in\nGenericCalcActions.MemAllocTest.\n\nBug: 8788501\nChange-Id: I412af1205f8b67e70a12237c990231ea62167bc0\n"
    },
    {
      "commit": "dcee9eeaa1d6ad80301c2ca52145259ab83abb2a",
      "tree": "165ce9b5b066646ee9a9497c39f1ec24e8e28238",
      "parents": [
        "ebc726a931fd76a83a7dcdd3cf3505cee387cead"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 12:40:17 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 12:41:41 2014 -0700"
      },
      "message": "Less confusing heap transition message.\n\nThe heap transition message now just says how long the transition\ntook and up to how much memory was saved (it can still be negative).\n\nChange-Id: If421dcc2aa9cc40740b858dcc2ff1b8e595f9a40\n"
    },
    {
      "commit": "c4d095bba4d2cbc63ca6ca85787122c0f3e131cf",
      "tree": "de3dd89b0d2bb405ee75bbf8ba9024f6ac0ca7b4",
      "parents": [
        "c311d0c85e17773042daaa7a4abc58b3e3c0a0c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 12:01:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 12:13:36 2014 -0700"
      },
      "message": "Don\u0027t call SetFootprintLimit in CreateZygoteSpace.\n\nSince SetFootprintLimit uses the allocators accounting it can set a\nword inside of the zygote space mem map. This was causing issues\nsince it was occasionally clobbering one of the object classes. This\noccured since we compact objects into the space which was used by the\nallocator\u0027s internal accounting during zygote bin packing.\n\nAlso addressed some TODO.\n\nBug: 14056343\nChange-Id: I9fc5a61174fa141c0f44d0ed0ae0cc6d77cb4e0a\n"
    },
    {
      "commit": "e9ea70bb806f7c1dcd57efb6f48f1d6329d5f103",
      "tree": "aa62f233e3f873fd6b5184ff38dd90e702507e2b",
      "parents": [
        "d6b9b62748e120f7a02eb315e5cc8179312a5d1a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 14 15:52:08 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 14 16:49:54 2014 -0700"
      },
      "message": "Fix clang build.\n\nChange-Id: Iaf0b76cfc02bac5f49ab98d494db9a774211f453\n"
    },
    {
      "commit": "d6b9b62748e120f7a02eb315e5cc8179312a5d1a",
      "tree": "d318a025cd4ca3a942e708b8717897a76390d960",
      "parents": [
        "107cbcc013df137cdad2a2eb238607b7673c5819",
        "a8e8f9c0a8e259a807d7b99a148d14104c24209d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 14 19:02:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 14 19:02:50 2014 +0000"
      },
      "message": "Merge \"Refactor space bitmap to support different alignments.\""
    },
    {
      "commit": "309e3bfc6a4c682ac09c95c596e11d8678603577",
      "tree": "ae37f2603bc089a102abf63e2dac9375b7ff427a",
      "parents": [
        "043a7a6182870964021476484b1534106ff20600"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 14 11:30:39 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 14 11:55:50 2014 -0700"
      },
      "message": "Reduce bump pointer space capacity.\n\nBug: 14058912\nChange-Id: I7ae53e667539530d56ca2f5d10214e69c9c994e2\n"
    },
    {
      "commit": "a8e8f9c0a8e259a807d7b99a148d14104c24209d",
      "tree": "d8ed041dd3cf490163f6b405102ea36d3b4b0828",
      "parents": [
        "043a7a6182870964021476484b1534106ff20600"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 09 14:51:05 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 14 10:07:47 2014 -0700"
      },
      "message": "Refactor space bitmap to support different alignments.\n\nRequired for:\nUsing space bitmaps instead of std::set in mod union table +\nremembered set.\nUsing a bitmap instead of set for large object marking.\n\nBug: 13571028\n\nChange-Id: Id024e9563d4ca4278f79607cdb2f81895121b113\n"
    },
    {
      "commit": "7840888bd9b6accdb32c38563e78a9dc201f1303",
      "tree": "5ee5a79c77bf61c5c49a2f75668fbaf3f02c16ec",
      "parents": [
        "95cd06622b956d7cd5b65248b1f381e602753f2c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 18:06:01 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 18:08:48 2014 -0700"
      },
      "message": "Fix hammerhead phone boot on master.\n\nWasn\u0027t failing on AOSP.\n\nChange-Id: I8e531bf7493d36dc2667afeaf3133ce8560a2ce1\n"
    },
    {
      "commit": "b272cd3013e046b7b001a091b0925b99a844e382",
      "tree": "164ea8da2ffe16cfdfa7c4f939a6b48fd2ef6ffa",
      "parents": [
        "248015696ee087878656fb53e37cbf7be2b97e4d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 16:42:46 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 16:52:59 2014 -0700"
      },
      "message": "Fix heap verification with SS/GSS.\n\nSince I had removed the SwapSemiSpaces it was trying to verify\nreferences in the from space of the semispace collector, which isn\u0027t\nnecessarily valid.\n\nBug: 13989162\n\nChange-Id: I8e0b7119a1a53d63f2c71ecdb276290eda5bae07\n"
    },
    {
      "commit": "248015696ee087878656fb53e37cbf7be2b97e4d",
      "tree": "3c5f46f34c36628918317ee8a0caf6acb5ea88fc",
      "parents": [
        "37df286803b39fe559dd0fe342a661115d96ae57",
        "d20aba14a3cb522e933800a164f7dc10eba21da3"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 11 22:43:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 11 22:43:08 2014 +0000"
      },
      "message": "Merge \"Fix an occasional ThreadStress crash.\""
    },
    {
      "commit": "d20aba14a3cb522e933800a164f7dc10eba21da3",
      "tree": "d21dac8bacfdf4db8fd3c95f9271d4294199fa9d",
      "parents": [
        "6a12a03cd4f4f2a145567362b016538beb13733b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 11 15:31:09 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 11 15:37:40 2014 -0700"
      },
      "message": "Fix an occasional ThreadStress crash.\n\nAlso, fix the NativeAllocations test for the case with the GSS\ncollector as the default GC. Since kGcCauseForAlloc (incorrect) was\nbeing passed into the collector instead of kGcCauseForNativeAlloc\n(correct) from Heap::RegisterNativeAllocation(), the GCC collector\nnever invoked a whole heap collection which was necessary to do\nsufficent finalizations to pass the test.\n\nBug: 13988451\nBug: 11650816\nChange-Id: Ib02f061751cd777e0d3bfa81b29e04a874dc58a0\n"
    },
    {
      "commit": "31f441464c0c8f840aba37e236ad133f30308d70",
      "tree": "54dba5521790d0038478f7cdf5103299d5149970",
      "parents": [
        "9b417e4f0f87da6bfe8dc5f02c987acfcb6dca31"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 08 14:40:03 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 14:47:35 2014 -0700"
      },
      "message": "Clean-up heap spaces.\n\nWe now use the CMS collector instead of the semispace collector when\nthe phone is booting. We still perform compaction during the zygote\nspace creation. This reduces time spent in GC by ~2s during boot\nand doesn\u0027t affect zygote space size.\n\nChanged the space creation logic to create the temp space when a\nbackground transition occurs.\n\nAdded a flag to each space which is true if you are allowed to\nmove objects that are within this space.\n\nRemoved SwapSemiSpaces call from the semi space collector, it is now\nthe job of the caller to do this with threads suspended. This\nsimplifies the logic in the zygote compaction / heap transition code\nsince these do not copy from one semispace to another.\n\nAdded Space::Clear to RosAllocSpace and DlMallocSpace. This greatly\nsimplifies the code used for collector transitions.\n\nTime spent in GC creating zygote space:\nBefore: 3.4s, After: 1.28s\nNo change in zygote space size.\n\nBug: 13878055\n\nChange-Id: I700348ab7d5bf3aa537c0cd70c0fed09aa4b0623\n"
    },
    {
      "commit": "b38d483b742eafc7833fac1ebb4fa1481cbac179",
      "tree": "05437041ee24b89481e9c3ef0be7589fa3e25e44",
      "parents": [
        "22839a631bb3591a1c0037c388d51a4f18b5fb5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 10 10:56:55 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 10 12:48:48 2014 -0700"
      },
      "message": "Fix race condition in TransitionCollector.\n\nThere was a race condition where if multiple threads were calling\nTransitionCollector it could cause a crash due to an invalid\ncollector transition if another thread did the collector transition\nbefore the SuspendAll.\n\nBug: 13929101\nChange-Id: I8c162a83c1f53d0cbdefab62b0a5bcbb151d6c42\n"
    },
    {
      "commit": "b6898f55d27d40b60e1a4b0036ae809cc9123cee",
      "tree": "bbf160543a0f904ce1e21d0c4098dfa8a7630802",
      "parents": [
        "dc9009e32d3c94e42614245fdf3fa024a5721aec"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 09 11:41:49 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 09 11:41:49 2014 -0700"
      },
      "message": "Add mean GC duration to DumpGcPerformanceInfo.\n\nChange-Id: Ibd68e9d8cae71d0ceb769fc975f1148287e9ca4a\n"
    },
    {
      "commit": "dc9009e32d3c94e42614245fdf3fa024a5721aec",
      "tree": "fb6e3d1f6ea62027080730a54a575b37d967e3a9",
      "parents": [
        "8edd574b5105f714961159ee5f8d04a264ae83eb",
        "df86d1f8147a95c1ec2f0c5d85e0439ef7d71730"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 09 17:54:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 09 17:54:10 2014 +0000"
      },
      "message": "Merge \"Adjust sticky GC ergonomics.\""
    },
    {
      "commit": "df86d1f8147a95c1ec2f0c5d85e0439ef7d71730",
      "tree": "f4a38e6ac39f9a583ea9cf12ffe988e7687fc65a",
      "parents": [
        "f2a26adf8d8573ab1d63e22290a600c350dc0f89"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 08 13:44:04 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 09 09:39:40 2014 -0700"
      },
      "message": "Adjust sticky GC ergonomics.\n\nAdded an adjustment factor that causes sticky GC to occur more often.\nCurrently, we adjust the throughput by 5 / 4 comapred to the non\nsticky GC. This improves the MemAllocTest score by 50-100. I believe\nthis happens since the sticky GC uses less memory bandwidth than\npartial/full GC. No benchmark score regression on\nEvaluateAndApplyChanges though total GC time is increased by ~0.5s.\n\nBug: 13818507\nChange-Id: Ic721a1bff069ddaf8acc55e776b8bc26e171d46e\n"
    },
    {
      "commit": "8edd574b5105f714961159ee5f8d04a264ae83eb",
      "tree": "67588c2e8c7d57b6434aad281e83908bd931ea1d",
      "parents": [
        "0b59c113801fb2b0e934b365c390591a709a8cf6",
        "df386c551405ce9668e827584f744c6f098761fa"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Apr 09 00:04:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 09 00:04:32 2014 +0000"
      },
      "message": "Merge \"GSS: Fix the bump pointer space only collection.\""
    },
    {
      "commit": "df386c551405ce9668e827584f744c6f098761fa",
      "tree": "ee0aeeb5e6b5575740a13877e6bbe5a51c7d8954",
      "parents": [
        "b7a691f6398c55dacb3531d921e8cb298c3c8b8d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Apr 08 16:21:52 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Apr 08 16:38:57 2014 -0700"
      },
      "message": "GSS: Fix the bump pointer space only collection.\n\nFixes b/13912464 where the clear soft reference behavior accidentally\ndisabled the bump pointer space only collection.\n\nChanged the collector name so that the GC logs would indicate the\ngenerational mode and the collection mode.\n\nPeformance enhancement: instead of triggering the whole heap\ncollection every 5 collections, count the bytes promoted since the\nlast whole heap collection and use it to decide when to trigger the\nwhole heap collection. This improves MemAllocTest by 5-10% (N4 and\nhost).\n\nBug: 13912464\nBug: 11650816\nBug: 9986565\nChange-Id: I653a0dca62a8b54adf69abe2940a41eac70f809b\n"
    },
    {
      "commit": "5a48719b516a52d1a6800d8ae6f7dcba3d883bdc",
      "tree": "832da1739937d3142d7c75523955e90166a4c57d",
      "parents": [
        "476fe7c81c0d6b060be5cde4c44a2bb8b0b8ffd2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 08 11:14:54 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 08 12:12:14 2014 -0700"
      },
      "message": "Reset GC timings after SIGQUIT.\n\nWe now reset the GC timings when a SIGQUIT happens, this is useful\nfor excluding GCs which happen during the initialization of an app\nwhen measuring GC performance.\n\nChange-Id: I68c79bdb279290c12ae588bc7e95ac24908c157e\n"
    },
    {
      "commit": "476fe7c81c0d6b060be5cde4c44a2bb8b0b8ffd2",
      "tree": "c1a1832b9e5d4a04aa4c0b63c0f5de9485a0f5d9",
      "parents": [
        "bc488164013071454329f66d056c370e10b19877",
        "d9a88de76de4c81ad75340b824df64a68c739351"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 07 23:13:17 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 07 23:13:17 2014 +0000"
      },
      "message": "Merge \"Implement rosalloc page trimming without suspending threads.\""
    },
    {
      "commit": "d9a88de76de4c81ad75340b824df64a68c739351",
      "tree": "c73fdb6fc236152b330407a30ce885463799bccd",
      "parents": [
        "b7a691f6398c55dacb3531d921e8cb298c3c8b8d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 07 13:52:31 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Apr 07 16:07:04 2014 -0700"
      },
      "message": "Implement rosalloc page trimming without suspending threads.\n\nAlso, making it more efficient by not going through the chunks smaller\nthan the page size by not using InspectAll().\n\nChange-Id: I79ceb0374cb8aba5f6b8dde1afbace9af98b6cff\n"
    },
    {
      "commit": "440e4ceb310349ee8eb569495bc04d3d7fbe71cb",
      "tree": "db278d463f0c2440e9c8e8cb80e53d2b2effe196",
      "parents": [
        "4d3dc8a04da8a80251b381cdb482190363171dc1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 31 16:36:35 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 07 13:44:36 2014 -0700"
      },
      "message": "Add monitor deflation.\n\nWe now deflate the monitors when we perform a heap trim. This causes\na pause but it shouldn\u0027t matter since we should be in a state where\nwe don\u0027t care about pauses. Memory savings are hard to measure.\n\nFixed integer overflow bug in GetEstimatedLastIterationThroughput.\n\nBug: 13733906\nChange-Id: I4e0e68add02e7f43370b3a5ea763d6fe8a5b212c\n"
    },
    {
      "commit": "7bf9f190cd33a7e2f8584299eb889e9df66e0323",
      "tree": "1817368ef167a6340129d2a59b0c423f5c87d604",
      "parents": [
        "34df691e64a6491e7312a850a1ad255e4cf02702"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 04 11:09:41 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 04 11:22:27 2014 -0700"
      },
      "message": "Improve invalid root dumping.\n\nThe invalid root dumping now attempts to print the root type.\n\nChange-Id: Ie821296d569f34909ba6e2705f5c347cd2143a3a\n"
    },
    {
      "commit": "541dd231f9a7282f7fd1092349a322dc67bafaf2",
      "tree": "3c60f49a1e13e48f71f33f2a41cfca1dd54edfed",
      "parents": [
        "e9236f03d8c4348a8f1a8767baa1aea60ecdc1f5",
        "800ac2defde5d12b2f1f313c6b6162560cfa6fc7"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 04 04:34:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 04 04:34:09 2014 +0000"
      },
      "message": "Merge \"Insert an empty read barrier call.\""
    },
    {
      "commit": "800ac2defde5d12b2f1f313c6b6162560cfa6fc7",
      "tree": "c25e10b68be9be9949e96d3c977fbcf906f22a3a",
      "parents": [
        "5cff3083c00dfbae7b8c5c34b0bedbc514c91df9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Apr 02 17:32:54 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 20:16:44 2014 -0700"
      },
      "message": "Insert an empty read barrier call.\n\nBug: 12687968\nChange-Id: Ie1d28658e16e09f6a983cb5c1f0d5b375b7ae069\n"
    },
    {
      "commit": "e9236f03d8c4348a8f1a8767baa1aea60ecdc1f5",
      "tree": "ba50bc7c65e03ac9ea16a24375cef68c629a59d1",
      "parents": [
        "e5893f8fb70c58fe9950c1fc8b1023e32ca34637",
        "4cd662e54440f76fc920cb2c67acab3bba8b33dd"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 04 02:54:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 04 02:54:16 2014 +0000"
      },
      "message": "Merge \"Fix Object::Clone()\u0027s pre-fence barrier.\""
    },
    {
      "commit": "4cd662e54440f76fc920cb2c67acab3bba8b33dd",
      "tree": "e2becdc06eded96215a1c9a501004ac3889e9107",
      "parents": [
        "5cff3083c00dfbae7b8c5c34b0bedbc514c91df9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 16:28:10 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 16:35:50 2014 -0700"
      },
      "message": "Fix Object::Clone()\u0027s pre-fence barrier.\n\nPass in a pre-fence barrier object that sets in the array length\ninstead of setting it after returning from AllocObject().\n\nFix another potential bug due to the wrong default pre-fence barrier\nparameter value. Since this appears error-prone, removed the default\nparameter value and make it an explicit parameter.\n\nFix another potential moving GC bug due to a lack of a SirtRef.\n\nBug: 13097759\nChange-Id: I466aa0e50f9e1a5dbf20be5a195edee619c7514e\n"
    },
    {
      "commit": "be73e57308680382efd1e60fa03ac1eb5abcc9c7",
      "tree": "8eab6b957658ad56711a09d269139c9d4b7396ec",
      "parents": [
        "a7b2826fa469c626ff2c3ff26fd848c28bccc092"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 03 10:46:42 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 03 10:46:42 2014 -0700"
      },
      "message": "Fix off-by-1 error in new SpaceBitmap\n\nDo not visit_end in the VisitMarkedRange code.\n\nChange-Id: Iaf02788509b21a102cd1c0e2db3cbd09d0522bfa\n"
    },
    {
      "commit": "cb8aea4bd5e77857c713edeb62bffcb1f7f06a39",
      "tree": "681762eac98329401eed57ffcef56463eb6cd3b2",
      "parents": [
        "d0ab1223cc8c5181e502196a7765790ad2aba3c8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 02 15:39:58 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 02 17:07:55 2014 -0700"
      },
      "message": "Make SpaceBitmap cross-compiling tolerant\n\nChange the order of bits in SpaceBitmap to be the intuitive one:\nOffset 0 is bit 0, instead of the MSB. Then compiling on 32b for\n64b works as expected.\n\nChange-Id: Iee2491eaf06d4b5f8b534b7c980d5719633cb64c\n"
    },
    {
      "commit": "8afeb85d3def12b559b7565fb6d3956f81b55132",
      "tree": "60ac7c63d7adba0dc117ac88dd98cc97a879e0ca",
      "parents": [
        "0807e7bbbafc4b4e8e7fb1d2d54fbcb011c05c82"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 02 14:55:49 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 02 14:55:49 2014 -0700"
      },
      "message": "Pass instruction-set from runtime through to spawned dex2oat.\n\nChange-Id: I1727af7beb9f710c29124d4d6bc9175e4856f3cc\n"
    },
    {
      "commit": "252f848f68356551980701126481e0685bbded08",
      "tree": "2aeec7b68eff57bb84218d70aa47ba936cf43171",
      "parents": [
        "b3d7eed9f760fa22e3a8e87ec2c8ff3fe50a1f50",
        "da44d773dedf8aae6153e3423012f236cba3bfcd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 01 22:37:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 01 22:37:45 2014 +0000"
      },
      "message": "Merge \"Fix running with DlMalloc instead of RosAlloc.\""
    },
    {
      "commit": "da44d773dedf8aae6153e3423012f236cba3bfcd",
      "tree": "60c9e81292f2c62af9764d53e8b4077f24879f7b",
      "parents": [
        "e0309ad355e778fe692beb8968bf8aa7edbd3302"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 01 15:01:46 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 01 15:17:31 2014 -0700"
      },
      "message": "Fix running with DlMalloc instead of RosAlloc.\n\nBug: 13748830\nBug: 13744490\n\nChange-Id: Ieec97cf58ebf9864a40ee85aae582cdcf3f27c0c\n"
    },
    {
      "commit": "79b1bf0ba1580cef94412ac3a62904ac89e6dfbc",
      "tree": "17d7b4bc94f3421e1d4c0646287a7864d05da801",
      "parents": [
        "e0309ad355e778fe692beb8968bf8aa7edbd3302",
        "624468cd401cc1ac0dd70c746301e0788a597759"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Apr 01 17:58:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 01 17:58:30 2014 +0000"
      },
      "message": "Merge \"Make the support code for read barriers a bit more general.\""
    },
    {
      "commit": "7ea687d886be7b8c106b0e0190dab299d14adcad",
      "tree": "173f7219fcfb74a12a045185bef50b980888c7f3",
      "parents": [
        "88e0463fa7e8ea7b427b65a07cd7b28111575174",
        "05a48b1f8e62564abb7c2fe674e3234d5861647f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 01 16:30:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 01 16:30:24 2014 +0000"
      },
      "message": "Merge \"Fix stack overflow slow path error.\""
    },
    {
      "commit": "dd7624d2b9e599d57762d12031b10b89defc9807",
      "tree": "c972296737f992a84b1552561f823991d28403f0",
      "parents": [
        "8464a64a50190c06e95015a932eda9511fa6473d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 17:43:00 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 01 08:24:16 2014 -0700"
      },
      "message": "Allow mixing of thread offsets between 32 and 64bit architectures.\n\nBegin a more full implementation x86-64 REX prefixes.\nDoesn\u0027t implement 64bit thread offset support for the JNI compiler.\n\nChange-Id: If9af2f08a1833c21ddb4b4077f9b03add1a05147\n"
    },
    {
      "commit": "624468cd401cc1ac0dd70c746301e0788a597759",
      "tree": "b21c389d43e25c3d95208c9d2f3f1bc81355a4e5",
      "parents": [
        "cfd5acf281b0c509f86b13d73c6a8dfa3ea9922c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 31 15:14:47 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 31 17:40:21 2014 -0700"
      },
      "message": "Make the support code for read barriers a bit more general.\n\nAdd an option for Baker in addition to Brooks.\n\nBug: 12687968\nChange-Id: I8a31db817ff6686c72951b6534f588228e270b11\n"
    },
    {
      "commit": "05a48b1f8e62564abb7c2fe674e3234d5861647f",
      "tree": "6ffa24272e2d9efdf1dca8b30774925041e43c8a",
      "parents": [
        "cfd5acf281b0c509f86b13d73c6a8dfa3ea9922c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 31 16:11:41 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 31 16:28:09 2014 -0700"
      },
      "message": "Fix stack overflow slow path error.\n\nThe frame size without spill was being passed into the slow path\ninstead of the spill size. This was incorrect since only the spills\nwill have been pushed at the point of the overflow check.\n\nAlso addressed an other comment.\n\nChange-Id: Ic6e455122473a8f796b291d71f945bcf72788662\n"
    },
    {
      "commit": "cfd5acf281b0c509f86b13d73c6a8dfa3ea9922c",
      "tree": "711eb3768174dff0a9643d70015384f37d398ff6",
      "parents": [
        "9f42a5b81d4e6ff20a588c70f17c21da04c29123",
        "1cd53dbb2163f18b689d2a65cf9c6bdcdb01b407"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 31 18:34:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 31 18:34:45 2014 +0000"
      },
      "message": "Merge \"Fix a DCHECK failure when causing GC from DDMS.\""
    },
    {
      "commit": "5ae2c9335a0c4eeaf4c67a52d066f16aad1aa907",
      "tree": "f3d6a0d2a5e67ac5bcfe984f196465078ba9d7a5",
      "parents": [
        "17b3fb82db845bae4713ca9cbe2f0c9a2dd2abc2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 28 16:22:20 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 28 16:24:55 2014 -0700"
      },
      "message": "Fix non concurrent mark sweep ergonomics.\n\nPreviously we would continue to do sticky GC until the sticky GC did\nnot free enough memory for the allocation, this was excessive since it\ncould do one sticky GC per allocation. The new logic uses the next GC\ntype before trying all the GCs in the plan.\n\nBefore memalloc benchmark (non concurrent mark sweep):\nTotal time spent in GC: 11.212701s\nScore: 7790\n\nAfter:\nTotal time spent in GC: 9.422676s\nScore: 6870\n\nChange-Id: Iba75b70ea825ef3fd4b3e064d4f12c2fe5a3b176\n"
    },
    {
      "commit": "1cd53dbb2163f18b689d2a65cf9c6bdcdb01b407",
      "tree": "b6a214bcc7bd33cfa60e0e7ee51329b3327a537a",
      "parents": [
        "0fd52d5d0cf01e5a109851098a43a79f5615dc0f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 28 15:26:48 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 28 15:26:48 2014 -0700"
      },
      "message": "Fix a DCHECK failure when causing GC from DDMS.\n\nBug: 13647069\nChange-Id: Iae2746b2b7b4493fcf5f0d40d2bf36a9b2d2efc8\n"
    },
    {
      "commit": "0f7bf6a3ad1798fde328a2bff48a4bf2d750a36b",
      "tree": "da16cfe399a3619671a90b502e8ddfd15c11ee3e",
      "parents": [
        "26162488da23d1cbd04e6112ea458847818f1dae"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 28 10:05:39 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 28 13:53:58 2014 -0700"
      },
      "message": "Swap allocation stacks in pause.\n\nThis enables us to collect objects allocated during the GC for both\nsticky, partial, and full GC. This also significantly simplifies GC\ncode. No measured performance impact on benchmarks, but this should\nslightly increase sticky GC throughput.\n\nChanged RevokeRosAllocThreadLocalBuffers to happen at most once per\nGC. Previously it occured twice if pre-cleaning was enabled.\n\nRenamed HandleDirtyObjectsPhase to PausePhase and enabled it for\nnon-concurrent GC. This helps reduce duplicated code which was in\nboth HandleDirtyObjectsPhase for concurrent GC and ReclaimPhase for\nnon-concurrent GC.\n\nChange-Id: I533414b5c2cd2800f00724418e0ff90e7fdb0252\n"
    },
    {
      "commit": "26162488da23d1cbd04e6112ea458847818f1dae",
      "tree": "2816fc5295df9332654cd2803357d65ed7816009",
      "parents": [
        "f805f7772efe8f87055befb03647a970b5a4d59f",
        "4aeec176eaf11fe03f342aadcbb79142230270ed"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 28 18:54:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 28 18:54:08 2014 +0000"
      },
      "message": "Merge \"Refactor some GC code.\""
    },
    {
      "commit": "f805f7772efe8f87055befb03647a970b5a4d59f",
      "tree": "1e79193b656a58e6d1581dc2f846fb2654706b35",
      "parents": [
        "2bc4246f3dc045036da962a326b6f0b70541c2c8",
        "d5307ec41c8344be0c32273ec4f574064036187d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 28 18:35:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 28 18:35:27 2014 +0000"
      },
      "message": "Merge \"An empty collector skeleton for a read barrier-based collector.\""
    },
    {
      "commit": "4aeec176eaf11fe03f342aadcbb79142230270ed",
      "tree": "b2c7abd4b3624dc1f801f6a29893e0f66497f378",
      "parents": [
        "a708e32a9f764a48175e705ec4bcd2201c84f492"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 27 16:09:46 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 28 11:35:02 2014 -0700"
      },
      "message": "Refactor some GC code.\n\nReduced amount of code in mark sweep / semi space by moving\ncommon logic to garbage_collector.cc. Cleaned up mod union tables\nand deleted an unused implementation.\n\nChange-Id: I4bcc6ba41afd96d230cfbaf4d6636f37c52e37ea\n"
    },
    {
      "commit": "d5307ec41c8344be0c32273ec4f574064036187d",
      "tree": "9c80a692e2b142b3149b6efb660065fc73170a58",
      "parents": [
        "0fd52d5d0cf01e5a109851098a43a79f5615dc0f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 27 21:07:51 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 27 21:07:51 2014 -0700"
      },
      "message": "An empty collector skeleton for a read barrier-based collector.\n\nBug: 12687968\n\nChange-Id: Ic2a3a7b9943ca64e7f60f4d6ed552a316ea4a6f3\n"
    },
    {
      "commit": "afe4998fc15b8de093d6b282c9782d7182829e36",
      "tree": "bcb64fa7db43ece36a3e492deab5f9c162d39aa5",
      "parents": [
        "67ad224199b9902b3e6d85737e03b679d1ab44f9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 27 10:55:04 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 27 15:24:44 2014 -0700"
      },
      "message": "Change sticky GC ergonomics to use GC throughput.\n\nThe old sticky ergonomics used partial/full GC when the bytes until\nthe footprint limit was \u003c min free. This was suboptimal. The new\nsticky GC ergonomics do partial/full GC when the throughput\nof the current sticky GC iteration is \u003c\u003d mean throughput of the\npartial/full GC.\n\nTotal GC time on FormulaEvaluationActions.EvaluateAndApplyChanges.\nBefore: 26.4s\nAfter: 24.8s\nNo benchmark score change measured.\n\nBug: 8788501\n\nChange-Id: I90000305e93fd492a8ef5a06ec9620d830eaf90d\n"
    },
    {
      "commit": "12442d35d9dd5a31ef1340b49adbe56f70f1d797",
      "tree": "f81b1cf838c743457605a9d2a4ae72d7dc346787",
      "parents": [
        "bc428f234ca2885d6689fce82992123479bc643e",
        "580a8dfda74e7999f6b3e28e239ae8461a39dfcb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 27 01:03:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 27 01:03:11 2014 +0000"
      },
      "message": "Merge \"Less redundant verification.\""
    },
    {
      "commit": "580a8dfda74e7999f6b3e28e239ae8461a39dfcb",
      "tree": "085db43858bd760ee257f0bfd66cd7472788d591",
      "parents": [
        "223efbe5164f6fe83cf04e7f9121adb29b8dd231"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 26 15:15:57 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 26 17:21:56 2014 -0700"
      },
      "message": "Less redundant verification.\n\n~3 less objects verified per object scanned in the GC. Helps the\nirogers dogfood experience.\n\nChange-Id: I6efeab7842a6c702adecef73fb573c19291fecf2\n"
    },
    {
      "commit": "0767c9a85a97e0e16c39a63c31de6c543304b0a4",
      "tree": "6a809f72c85ef249cd62172a7d0b14827609f8e8",
      "parents": [
        "223efbe5164f6fe83cf04e7f9121adb29b8dd231"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 26 12:53:19 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 26 16:15:19 2014 -0700"
      },
      "message": "Add valgrind support to large object map space.\n\nAdded valgrind support to large object map space.\n\nBug: 7392044\nChange-Id: I1456f46414e1fa59ebcc2190ec00576dae26d623\n"
    },
    {
      "commit": "91e3063d97b4dba239682d00ecfb3ea8c0a96539",
      "tree": "1ccb6b866a61596efb0b9931f687ecca67742a14",
      "parents": [
        "c92492fc2565515ac5d68a8443efa91ba189b404"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 25 15:58:50 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 25 16:25:26 2014 -0700"
      },
      "message": "Add GC mode for stressing testing heap transitions.\n\nThe stress testing mode does repeated heap transitions when the heap\ngets a process state update. In between each transition, the heap\nwaits for a specified number of time.\n\nChange-Id: Ie3f43835e539fa8da147f77b4623a432a0d858c2\n"
    },
    {
      "commit": "3b05e9ba874449dbff65b01b8781001f7d93eea6",
      "tree": "f341766bff83ebea510344c4857af493725d3f58",
      "parents": [
        "027f7fa539514d2a50b448de1de39ac307087483"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 25 09:29:43 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 25 13:56:58 2014 -0700"
      },
      "message": "Add missing debugger root visiting.\n\nBug: 13634574\nChange-Id: I2a76f6c43f1d0ad1922f06deb40a71ff651129fd\n"
    },
    {
      "commit": "407f702da4f867c074fc3c8c688b8f8c32279eff",
      "tree": "6a856b64f655f5aab1c538eab28e9c69f9010122",
      "parents": [
        "d201dec03334bcc25add81704981a78c19927d87"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 18 14:37:05 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 24 16:35:21 2014 -0700"
      },
      "message": "Refactor object reference visiting logic.\n\nRefactored the reference visiting logic to be in mirror::Object\ninstead of MarkSweep.\n\nChange-Id: I773249478dc463d83b465e85c2402320488577c0\n"
    },
    {
      "commit": "0e54cd0d8fc635d3dc8bf88a465fdade151a098f",
      "tree": "285fc83fbe456e2c033f4e15fa59e8b2878f02e6",
      "parents": [
        "6a3fe330227f2192f6ce97915d62f46247f89378"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 12:41:23 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 24 09:50:19 2014 -0700"
      },
      "message": "Refactor and optimize GC code.\n\nFixed the reference cache mod union table, and re-enabled it by\ndefault. Added a boolean flag to count how many null objects,\nimmune, fast path, slow path objects we marked.\n\nSlight speedup in mark stack processing, large speedup in image mod\nunion table scanning.\nEvaluateAndApplyChanges Before:\nProcess mark stack time for full GC only:\n12.464089s, 12.357870s, 12.538028s\nTime spent marking mod image union table ~240ms.\nAfter:\nProcess mark stack time: 12.299375s, 12.217142s, 12.187076s\nTime spent marking mod image union table ~40ms.\n\nTODO: Refactor reference visiting logic into mirror::Object.\n\nChange-Id: I91889ded9d3f2bf127bc0051c1b1ff77e792e94f\n"
    },
    {
      "commit": "c93c530efc175954160c3834c93961a1a946a35a",
      "tree": "32a389e2b4cfc3296075aed23f353b8d3042c9a5",
      "parents": [
        "faa93b3ab455492dad1a9d3fb630e3936d389c85"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 20 16:15:37 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 21 12:17:56 2014 -0700"
      },
      "message": "Revoke rosalloc thread-local buffers at the checkpoint.\n\nIn the mark sweep collector, rosalloc thread-local buffers were\nrevoked during the pause. Now, they are revoked at the thread\ncheckpoint, as opposed to during the pause, which appears to help\nreduce the pause time.\n\nIn Ritz MemAllocTest, the average sticky pause time went down ~20%\n(925 us -\u003e 724 us).\n\nBug: 13394464\nBug: 9986565\nChange-Id: I104992a11b46d59264c0b9aa2db82b1ccf2826bc\n"
    },
    {
      "commit": "c7b4dfb8db21528b179689a80b69d868de394ef1",
      "tree": "77b1ffafac22a5cccf559dfeefb1ede3f4e1be23",
      "parents": [
        "8d6b12a3e6e43ce16b620f30a5a18273c4888a74",
        "3e41780cb3bcade3b724908e00443a9caf6977ef"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 21 17:47:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 17:47:51 2014 +0000"
      },
      "message": "Merge \"Refactor the garbage collector driver (GarbageCollector::Run).\""
    },
    {
      "commit": "22e4a507b52cf192ef68c4e4ff9efbccea34eba5",
      "tree": "5cd28295888b1d1cccfa72f0f75859645b4c2414",
      "parents": [
        "06cad80971ec68a13aec1557fc5a149928ab8c8a",
        "601276abdb746b03675ff945745aa936694d3439"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 22:54:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 22:54:26 2014 +0000"
      },
      "message": "Merge \"Fix RecordFree to take signed parameters.\""
    },
    {
      "commit": "06cad80971ec68a13aec1557fc5a149928ab8c8a",
      "tree": "b8f6f57a0f271c3122750c5602f21c6fc61f87be",
      "parents": [
        "abbce4c1258d4dce1152c370034b11e0dc56fdb5",
        "36bf21665b43adc2485167cbb3a044dbdf4931ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 22:54:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 20 22:54:09 2014 +0000"
      },
      "message": "Merge \"Add Heap::RunningOnValgrind and call it from the spaces.\""
    },
    {
      "commit": "36bf21665b43adc2485167cbb3a044dbdf4931ee",
      "tree": "e5831941fc6b6fc80da0ea35110a5c5bfa1c1d56",
      "parents": [
        "afb21d16bd2267f7f34e63a5b5105f7572455d22"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 15:40:37 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 15:40:37 2014 -0700"
      },
      "message": "Add Heap::RunningOnValgrind and call it from the spaces.\n\nMakes it easier to disable valgrind support.\n\nChange-Id: I1bde792f1b76a2dd968fa03c6142e92fcc3670b0\n"
    },
    {
      "commit": "601276abdb746b03675ff945745aa936694d3439",
      "tree": "94a789af17b042b079251cd212787724c2b820d6",
      "parents": [
        "afb21d16bd2267f7f34e63a5b5105f7572455d22"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 15:12:30 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 15:34:18 2014 -0700"
      },
      "message": "Fix RecordFree to take signed parameters.\n\nRecordFree can get negative bytes allocated when background\ncompaction foreground transitions occur. This caused a DCHECK to\nfail on debug builds. Also did some refactoring in\nPreProcessReferences.\n\nBug: 13568814\nChange-Id: I57543f1c78544a94f1d241459698b736dba8cfa8\n"
    },
    {
      "commit": "d387f7ee7283155cfc3a7555acd94eb1f3c4372a",
      "tree": "1557ec5181bac953aaadc0b319c7e1581509ee89",
      "parents": [
        "f2a0d91c9307819c070133e02ee04505b268b75d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 20 13:31:37 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 20 13:33:02 2014 -0700"
      },
      "message": "Fix a libartd.so boot DCHECK failure with the GSS collector.\n\nBug: 11650816\nChange-Id: Ibbdf1e66d2c1afe92351ee7a0ca84702bd07035d\n"
    },
    {
      "commit": "3e41780cb3bcade3b724908e00443a9caf6977ef",
      "tree": "7e112e8b3c5c7b13a52cac482bf51b84cf12e7d4",
      "parents": [
        "f2a0d91c9307819c070133e02ee04505b268b75d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 20 12:03:02 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 20 12:37:57 2014 -0700"
      },
      "message": "Refactor the garbage collector driver (GarbageCollector::Run).\n\nBug: 12687968\n\nChange-Id: Ifc9ee86249f7938f51495ea1498cf0f7853a27e8\n"
    },
    {
      "commit": "1ad2784ad9f311ebf9fe0677d33818648f423f9c",
      "tree": "3dbc930a653615e074cc4965ded9e0cc6ed07a45",
      "parents": [
        "66e4c3e96dccdec7423d673ad6bbf7821a776651"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 19 17:08:17 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 20 09:17:02 2014 -0700"
      },
      "message": "Add soft reference pre processing.\n\nSoft reference pre-processing does soft reference preservation with\nmutators running. After this is done, it does another pass with\nmutators paused in the ProcessReference code. This helps lower pauses\nsince most preserved soft references have their referents recursive\nmarked outside the pause.\n\nChanged ergonomics to have non sticky collectors always clear the\nsoft references.\n\nMaps pauses ~10ms -\u003e ~3ms on Nexus 4.\n\nBug: 13421927\n\nChange-Id: I1370f7bb6934034869aa5afca0c377876267aa8e\n"
    },
    {
      "commit": "0f7e3e73229812d303f3621fad59ca76a50ebd07",
      "tree": "5fed99fcc725d81879bc5b981f0095927f4f4e14",
      "parents": [
        "522e1140fd2030c97532ec20e9ab30be529ab09b",
        "38e68e9978236db87c9008bbe47db80525d2fa16"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 18 18:29:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 18 18:29:22 2014 +0000"
      },
      "message": "Merge \"Use the card table to speed up the GSS collector.\""
    },
    {
      "commit": "38e68e9978236db87c9008bbe47db80525d2fa16",
      "tree": "d678fea32b91d148e33c71ff0e6a53a90f2585b8",
      "parents": [
        "fb5b21d1d598b6b42e5d5ca1dac4a040832558fb"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 07 13:59:08 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 14 17:45:08 2014 -0700"
      },
      "message": "Use the card table to speed up the GSS collector.\n\nScan only dirty cards, as opposed to the whole space, to find\nreferences from the non-moving spaces to the bump pointer spaces at\nbump pointer space only collections.\n\nWith this change, the Ritz MemAllocTest speeds up by 8-10% on host and\n2-3% on N4. The Ritz EvaluateFibonacci speeds up by 8% and its average\npause time is reduced by 43% on N4.\n\nBug: 11650816\nChange-Id: I1eefe75776bc37e24673b301ffa65a25f9bd4cde\n"
    },
    {
      "commit": "4fb5df8453367aa3f160ac230c03a7a98a28e562",
      "tree": "069df39819c0f7e8f6f0d4af8569d8a06dafdaf9",
      "parents": [
        "b6825e67ea7b85a910258713910a443cfec747e4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 13 15:10:27 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 14 15:17:32 2014 -0700"
      },
      "message": "Make MemMap::MapAnonymous() fail if the requested address is not available.\n\nChange MapAnonymous() so that a requested address vs. actual map\naddress mismatch will cause a failure. The existing MapAnonymous()\ncall sites do not check this. This should prevent potential rare case\nbugs where mmap does not happen to map a region at an specified\naddress.\n\nThere\u0027s a potential bug that if MapAnonymous() does not guarantee the\nrequested address (and there\u0027s a gap between the image/oat files and\nthe zygote/malloc space), then GC could in theory allocate a large\nobject space in the gap. This would break the GC notion of the immune\nspace. This change will prevent this by causing all non-moving spaces\nto be (really) adjacent, with no gaps in between, which CL 87711\nmissed.\n\nChange-Id: Id4adb0e30adbad497334d7e00def4c0c66b15719\n"
    },
    {
      "commit": "53b8b09fc80329539585dcf43657bc5f4ecefdff",
      "tree": "cac0f82fbb89bd907104e3fed6c36203e11a3de0",
      "parents": [
        "0dea9872082bc3e576ed6cefed86b0d6c0c45ffd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 13 23:45:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 14 11:28:10 2014 -0700"
      },
      "message": "Refactor reflective method invocation.\n\nMove invocation code out of JNI internal into reflection, including ArgArray\ncode. Make reflective invocation use the ArgArray to build arguments rather\nthan allocating a jvalue[] and unboxing arguments into that.\nMove reflection part of jni_internal_test into reflection_test.\nMake greater use of fast JNI.\n\nChange-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057\n"
    },
    {
      "commit": "8fa2dad7fe7909c8335101d6c8904ae997cdf29f",
      "tree": "b4809584363705a640b8a4d5c87f9fa2af59c41e",
      "parents": [
        "282cbe489046face5475991aaa1ecb5f1deba107"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 13 12:22:56 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 14 10:15:18 2014 -0700"
      },
      "message": "Refactor reference code into mirror namespace.\n\nAdded two new files: mirror/reference.h and mirror/reference-inl.h.\n\nChange-Id: Ibe3ff6379aef7096ff130594535b7f7c0b7dabce\n"
    },
    {
      "commit": "7bf52d28978a6a747795cc0c78b04a3e83f0cf16",
      "tree": "3cbd64f45438a47d4caef9c32f0096307b1e2cf9",
      "parents": [
        "135ce2ea28e98df624aa071688bd01e0dadf2f62"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 13 14:46:09 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 13 15:32:51 2014 -0700"
      },
      "message": "Fix heap trimming logic.\n\nThe new heap trimming logic introduced in the c/84301 was not very\ngood since the heap trim would get avoided since the daemon thread\nwas coming to the heap trimming code before the scheduled time.\n\nThe new logic is to do the heap trim if the last heap trim occurred\nmore than kHeapTrimWait ns ago.\n\nChange-Id: I9d0e6766bf0c68e5f7fb15fb059140e1f1264216\n"
    },
    {
      "commit": "b373e091eac39b1a79c11f2dcbd610af01e9e8a9",
      "tree": "034d820c4829e0dcf6161473cc39f7250123bfaa",
      "parents": [
        "9545a446e99b22248099fe66f5f9431530c20851"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Feb 20 16:06:36 2014 -0800"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Mar 13 12:21:15 2014 -0700"
      },
      "message": "Implicit null/suspend checks (oat version bump)\n\nThis adds the ability to use SEGV signals\nto throw NullPointerException exceptions from Java code rather\nthan having the compiler generate explicit comparisons and\nbranches.  It does this by using sigaction to trap SIGSEGV and when triggered\nmakes sure it\u0027s in compiled code and if so, sets the return\naddress to the entry point to throw the exception.\n\nIt also uses this signal mechanism to determine whether to check\nfor thread suspension.  Instead of the compiler generating calls\nto a function to check for threads being suspended, the compiler\nwill now load indirect via an address in the TLS area.  To trigger\na suspend, the contents of this address are changed from something\nvalid to 0.  A SIGSEGV will occur and the handler will check\nfor a valid instruction pattern before invoking the thread\nsuspension check code.\n\nIf a user program taps SIGSEGV it will prevent our signal handler\nworking.  This will cause a failure in the runtime.\n\nThere are two signal handlers at present.  You can control them\nindividually using the flags -implicit-checks: on the runtime\ncommand line.  This takes a string parameter, a comma\nseparated set of strings.  Each can be one of:\n\nnone        switch off\nnull        null pointer checks\nsuspend     suspend checks\nall         all checks\n\nSo to switch only suspend checks on, pass:\n-implicit-checks:suspend\n\nThere is also -explicit-checks to provide the reverse once\nwe change the default.\n\nFor dalvikvm, pass --runtime-arg -implicit-checks:foo,bar\n\nThe default is -implicit-checks:none\n\nThere is also a property \u0027dalvik.vm.implicit_checks\u0027 whose value is the same\nstring as the command option.  The default is \u0027none\u0027.  For example to switch on\nnull checks using the option:\n\nsetprop dalvik.vm.implicit_checks null\n\nIt only works for ARM right now.\n\nBumps OAT version number due to change to Thread offsets.\n\nBug: 13121132\nChange-Id: If743849138162f3c7c44a523247e413785677370\n"
    },
    {
      "commit": "0d64958d157ff6a30cbbe79df14ee4c723d14754",
      "tree": "7c64042b391af761e0e3976fe3c1ce93027fa97e",
      "parents": [
        "3314dcf81d116c3142520970286ffaede67ab522",
        "8d562103c3a3452fb15ef4b1c64df767b70507a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 13 17:20:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 13 17:20:48 2014 +0000"
      },
      "message": "Merge \"Refactor immune region logic into its own file.\""
    },
    {
      "commit": "8d562103c3a3452fb15ef4b1c64df767b70507a4",
      "tree": "d9fe8cacae77f597d676beb5086c03086f54e262",
      "parents": [
        "ca46e2003360b44f4c043f6da87092592bc3d6d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 12 17:42:10 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 13 10:06:28 2014 -0700"
      },
      "message": "Refactor immune region logic into its own file.\n\nAdded immune_region.cc/.h in the collector directory. Changed the\nfunctionality to no longer assume spaces are added to immune region\nin ascending order.\n\nChange-Id: Id1d643b3849ad2695e8a151dbbb74a5035644472\n"
    },
    {
      "commit": "5d057056db1923947ba846b391d981759b15714a",
      "tree": "0e996c005077946f7505c333b65e7aee16a99bcb",
      "parents": [
        "37d4c1db4d705f5a28001f65afdd68d0527948d8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 12 14:32:27 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 12 14:45:52 2014 -0700"
      },
      "message": "Improve use of CHECK macros.\n\nMotivated by a bogus compiler warning for debug with O2, switch from\nCHECK(x \u003c y) to the recommended CHECK_LT(x, y). Fix bug in\nRosAlloc::Initialize where an assignment was being performed within\na DCHECK.\n\nChange-Id: Iaf466849ae79ae1497162e81a3e092bf13109aa9\n"
    },
    {
      "commit": "5ccd498d4aa450b0381344724b072a932709a59a",
      "tree": "4a5b80f095a507f852e4d39b256359e43c3eba7e",
      "parents": [
        "f1375cd6367fba8b192b7628769931853c25e942"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 11 12:19:04 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 11 14:09:03 2014 -0700"
      },
      "message": "Put the post zygote non-moving space next to the malloc space.\n\nThis change fixes the following problem with the GSS collector: if the\npost zygote non-moving space happens to be located after the bump\npointer spaces, the bump pointer space is treated wrongfully as an\nimmune space. The reasons are 1) the immune space is represented by a\nsimple address range and 2) the GSS collector treats the post zygote\nnon-moving space as an immune space at a bump pointer space only\ncollection.\n\nIn addition, this change makes it a reality that all the non-moving\nspaces are adjacent, which we tend to assume in the code (eg. the\nnotion of the immune space represented by a simple address range.)\nThis should help avoid potential confusions in the future.\n\nFix a DCHECK failure where usable_size isn\u0027t set properly when\n-XX:UseTLAB is used.\n\nChange-Id: I585920e433744a390f87e9a25bef6114b2a4623f\n"
    },
    {
      "commit": "d6534315596326f1a65aa2d300144c09205c5122",
      "tree": "ca81b65c38bb3e15120a108bbb92c19a8a0b1ed9",
      "parents": [
        "d57abe5f75e2c82052d7396d6ec6eafc7f3af58a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 10 09:28:23 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 10 09:28:23 2014 -0700"
      },
      "message": "Add timing split for RevokeAllThreadLocalBuffers.\n\nThis is part of the pause and should be accounted for.\n\nChange-Id: I3165324de810e8fab02719098977402a18013da1\n"
    },
    {
      "commit": "5647d189c3ea5324e569d96cef67c87879d6cd05",
      "tree": "bdf872592ef681147d9b28af2c38b11f603fe910",
      "parents": [
        "aa00fe010eb7b61c2de82611ce3f6fc0918a4f9e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 15:00:39 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 15:28:43 2014 -0800"
      },
      "message": "Fix tests to pass with VerifyObject.\n\nA SIRT ref with a null class was causing object verification problems\nin space_test.\n\nChange-Id: I95cfc3da5e0fec0155387f75612b0a3f26f6d3c9\n"
    },
    {
      "commit": "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b",
      "tree": "de6141864c1c011216c19dd99a2c1e2bc442dd6d",
      "parents": [
        "a9d7be62735e3356cef7e8ed797c519134a17061"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 18:11:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 12:09:04 2014 -0800"
      },
      "message": "Add more VerifyObject calls.\n\nAdded verify object calls to SirtRef, IndirectReferenceTable,\nReferenceTable.\n\nRemoved un-needed verify object in ScopedObjectAccess / DecodeJObject\nsince object sources are handled.\n\nBug: 12934910\nChange-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125\n"
    },
    {
      "commit": "719d1a33f6569864f529e5a3fff59e7bca97aad0",
      "tree": "fcd84efd7b9806b93ec1a44e2317e6f882e7fe0e",
      "parents": [
        "5365eea9940269b662cfbe103caa348816ff1558"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 12:13:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 19:16:01 2014 -0800"
      },
      "message": "Enable annotalysis on clang ART builds.\n\nFix clang build errors aswell as restructure locking/mutex code for correct\nthread safety analysis support.\nReorder make dependencies so that host builds build first as they should\nprovide better compilation errors than target.\nRemove host\u0027s use of -fno-omit-frame-pointer as it has no value with correct\nuse of CFI, which we should have.\n\nChange-Id: I72cea8da9a3757b1a0b3acb4081feccb7c6cef90\n"
    },
    {
      "commit": "5365eea9940269b662cfbe103caa348816ff1558",
      "tree": "877ad900a7950b8bc66f8a2495f2f27ebf8d5eb8",
      "parents": [
        "f1ac817fbb9a908086803c7d098cc4f4c16eface",
        "a5f9de040a7a740b7b4979bc8d47f95eb05718ae"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 01:18:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 01:18:08 2014 +0000"
      },
      "message": "Merge \"Defer heap transitions to heap trimming daemon.\""
    },
    {
      "commit": "f517f1a994fab72ba484bbbac6911e315f59f6cd",
      "tree": "5dbd368323e6d3ebdf47db4ab7d5bdd7a2a7845f",
      "parents": [
        "c7a8981098646b4e255d9ede1f3798023bac6e84"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 15:52:27 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 16:00:46 2014 -0800"
      },
      "message": "Restore obj after RequestConcurrentGC.\n\nRequestConcurrentGC can cause thread suspension, this means that\nanother thread could transition the heap or cause moving GC.\n\nBug: 12934910\n\nChange-Id: I5c07161e2e849d7acbdf939f1c24e1ba361a1d6a\n"
    },
    {
      "commit": "a5f9de040a7a740b7b4979bc8d47f95eb05718ae",
      "tree": "a06560b27a6e2ec1e7c90b3b8f0f1f6344f09c81",
      "parents": [
        "c7a8981098646b4e255d9ede1f3798023bac6e84"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 28 16:48:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 15:38:06 2014 -0800"
      },
      "message": "Defer heap transitions to heap trimming daemon.\n\nThis fixes the case where quick back and forth process state changes\nwould cause a lot of heap transitions.\n\nChange-Id: Ia5be792edcf26079b2aa23b9c115f6b0a9a39a1c\n"
    },
    {
      "commit": "6dda898d47b3e8931e4404330e81b7110108e34f",
      "tree": "d8a0a20b8ac1ce3cd44273cf5c748d09980bd800",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:11:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:43:06 2014 -0800"
      },
      "message": "Disable compaction for jni workarounds.\n\nCompaction can\u0027t work when jni workarounds is enabled. Also some\nother refactoring.\n\nChange-Id: Ia7b0f2b39c79f5a0a5f50874d823b950ab02a0c3\n"
    },
    {
      "commit": "c7cb1901b776129044a4ad3886fd6450e83df681",
      "tree": "611c648c250ac7e84ac7079fe000b7ce76d50685",
      "parents": [
        "c8554361e89970ab92a94d1f719553a30d45b86c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 14:41:03 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 15:02:18 2014 -0800"
      },
      "message": "Print error message if ImageSpace::Init fails.\n\nAlso changed some of the args in mem_map.cc to print as hex.\n\nBug: 13323732\n\nChange-Id: I02cd81300793515d143e94473f48fc701e401b38\n"
    },
    {
      "commit": "661974a5561e5ccdfbac8cb5d8df8b7e6f3483b8",
      "tree": "02e428694277d85a98505f8e814aba378fc7651c",
      "parents": [
        "3cd52df3d740f8a656233b199dfcaab165f415ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 09 11:23:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 12:44:22 2014 -0800"
      },
      "message": "Fix valgrind gtests and memory leaks.\n\nAll tests pass other than image_test which passes if some bad reads\nare disabled (buzbee working on this).\n\nChange-Id: Ifd6b6e3aed0bc867703b6e818353a9f296609422\n"
    },
    {
      "commit": "2ec6520d57479d393bffa05defa1479b25ca8382",
      "tree": "6f5266b53e335c7bf74b52905f64435dd114a18f",
      "parents": [
        "e6031e6fefc8f439b44e284b8563c790ef764c68"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 03 15:16:37 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 16:53:15 2014 -0800"
      },
      "message": "Support compiler filters for boot classpath\n\nimage_writer.cc\n  Remove assumption that all methods in the boot classpath are compiled\n\noat_writer.cc\n  Don\u0027t skip writing ArtMethod::quick_code_offset_ for methods that need resolution, leave that to ImageWriter\n\ndex2oat.cc\n  Allow dex2dex compilation of image dex files by making the in memory pages writable in all cases, not just app case.\n\noatdump.cc\n  dump new OatHeader fields\n  use ImageSpace.GetImageFilename, not command line image filename, since location may be in dalvik-cache\n  remove inaccurate check about non-null GC map\n\nquick_trampoline_entrypoints.cc\n  add and improve some DCHECKS that were useful while debugging\n\nclass_linker.cc\nimage_space.cc\n  fix double facepalm\n\nparsed_options.cc\n  fix zygote logging to not skip values to two part options like -classpath \u003cfoo\u003e\n\nruntime.cc\n  wireup parsed compiler options to runtime\n\nChange-Id: Iad314df0b80623c0663d61713d5098297ab9ac87\n"
    },
    {
      "commit": "6f2083d3f909bce3988e71cd80374cee038ecba6",
      "tree": "ff70112b6d4fcc5c07e153734e4cb05a10dcf99b",
      "parents": [
        "a6ed651cfe290b9558f4bb18e1c43250a1abcbbd",
        "893263b7d5bc2ca43a91ecb8071867f5134fc60a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 23:26:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 23:26:43 2014 +0000"
      },
      "message": "Merge \"Avoid marking old class linker and intern table roots during pause.\""
    },
    {
      "commit": "893263b7d5bc2ca43a91ecb8071867f5134fc60a",
      "tree": "a99238843a9caad00122c8f7d13e031f5d81bc38",
      "parents": [
        "2fece5941f12395a94e742313e7059a9e419994d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 11:07:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 14:21:58 2014 -0800"
      },
      "message": "Avoid marking old class linker and intern table roots during pause.\n\nThe new root visiting logic has a concept of a root log which holds\nnew roots which were added since the start of the GC. This is an\noptimization since it lets us only mark these newly added roots\nduring the pause (or pre-cleaning) since the other roots intern table\nand class linker roots were marked concurrently at the start of the\nGC.\n\nBefore (EvaluateAndApplyChanges):\nMarkConcurrentRoots:\tSum: 605.193ms\nAfter:\nMarkConcurrentRoots:\tSum: 271.858ms\n\nThis should also reduce pathological GC pauses which used to be able\nto happen when the intern table or class linker became \"dirty\"\nduring the concurrent GC.\n\nChange-Id: I433fab021f2c339d50c35aaae7161a50a0901dec\n"
    },
    {
      "commit": "b02458f842a1263e6a7b3107d819a97a37fec726",
      "tree": "15f8810e54c10933236c4dba31d1e50a75a15fb9",
      "parents": [
        "2fece5941f12395a94e742313e7059a9e419994d",
        "26d69ffc0ebc98fbc5f316d8cd3ee6ba5b2001ac"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 04 18:34:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 18:34:50 2014 +0000"
      },
      "message": "Merge \"Decrease lock uses in RosAlloc::BulkFree().\""
    },
    {
      "commit": "9583fbcf597eff6d0b3c5359b8e8d5f70ed82c40",
      "tree": "847912709f811adda0fa63e89e4bf8af27769f2e",
      "parents": [
        "093aad184b4451639951a7e012d9b55cbf8c8a07"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 15:21:07 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 04 16:30:48 2014 +0000"
      },
      "message": "Remove oat file location in the image.\n\nThe oat file is now always in the same directory, and has the\nsame name as the image file. Only difference is the extension.\n\nThis also removes the need for host-prefix.\n\nChange-Id: I16d1f7aeb1d58372d41921694664e9c321afc1ad\n"
    },
    {
      "commit": "26d69ffc0ebc98fbc5f316d8cd3ee6ba5b2001ac",
      "tree": "5ac4599dd8198cf4c6e8d265bf509dcef8acd89b",
      "parents": [
        "a9242dfd0a9547141ddaba84cd4e2ea0117dff5b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 27 11:27:10 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 03 17:44:15 2014 -0800"
      },
      "message": "Decrease lock uses in RosAlloc::BulkFree().\n\nRead rosalloc page map entries without a lock.\n\nDisabled for now.\n\nThis change speeds up Ritz MemAllocTest by ~25% on host and reduces\nthe GC sweep time, but somehow slows it down by ~5% on N4, which is\nwhy it\u0027s disabled for now. TODO: look into the slowdown on N4 more.\n\nBug: 8262791\nBug: 11790317\nChange-Id: I936bbee9cfbd389e70d6343503bf0923865d2a2c\n"
    },
    {
      "commit": "a071575c616f1f8f6d462cc74e04cebf1b7e276d",
      "tree": "cf5177e9a1d762f72bd8dea971091a0ee3c3ecd6",
      "parents": [
        "55a0b53de40d6445447b80aff8f0d8a480de0d77",
        "c2f4d0240b3a9b905dff5b546924865f15241481"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 01:15:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 01:15:10 2014 +0000"
      },
      "message": "Merge \"Fix SafePrettyTypeOf to never call VerifyObject.\""
    },
    {
      "commit": "d889178ec78930538d9d6a66c3df9ee9afaffbb4",
      "tree": "6fa250bdadcdfc1702f57500e618b51df6d46828",
      "parents": [
        "06c09f6d79e037ee00113d6289ef98226680797d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 02 13:28:37 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 17:08:30 2014 -0800"
      },
      "message": "Guard entrypoint changing by runtime shutdown lock.\n\nThere was a race when we changed the allocation entrypoints where a\nnew thread would be starting (Thread::Init) and initialize to the\nwrong entrypoints. Guarding allocation entrypoint changing\nwith the runtime shutdown lock fixes this race condition since\nThread::Init is only called with the runtime shutdown lock held.\n\nBug: 13250963\n\nChange-Id: I8eb209c124b6bf17020de874e1b0083f158b8200\n"
    },
    {
      "commit": "c2f4d0240b3a9b905dff5b546924865f15241481",
      "tree": "133e39fac183d8ea0818f93b8e5e88f4221b9555",
      "parents": [
        "6b8c503c6df887ff30f478ab58bdfdb223492f45"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 16:11:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 16:40:42 2014 -0800"
      },
      "message": "Fix SafePrettyTypeOf to never call VerifyObject.\n\nCalling VerifyObject from the segfault handler caused another\nsegfault.\n\nChange-Id: I459646594d830cbb110a4ac2bac25a7b90794854\n"
    },
    {
      "commit": "3952057fbb7b2852d58cb2283894ebbd38160ad5",
      "tree": "fed98ea0bab5e1e4b30674aed399d62daadeb921",
      "parents": [
        "0afc1cb469a07d47e64bb11b8b624bd99f6acf72",
        "6b8c503c6df887ff30f478ab58bdfdb223492f45"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 23:04:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 03 23:04:57 2014 +0000"
      },
      "message": "Merge \"Make ModifyCardsAtomic 64 bit safe.\""
    },
    {
      "commit": "24651ecef33eac8ea155ce36681ca7331340547a",
      "tree": "c911fc3bacd0cc90ba90fed117d413e1bb26ecbb",
      "parents": [
        "4e9b9be18bd3e8dd5b144869ee7142d672a1d6e5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 27 13:26:16 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 19:08:41 2014 +0000"
      },
      "message": "Further split of the space tests\n\nSplit the random-size allocations from the static-size allocation tests\nHave all tests have distinguished names\n\nBug: 13117676\nChange-Id: I40130b04d11715b9bd1d1ea8d76720f83af6ba82\n"
    },
    {
      "commit": "6b8c503c6df887ff30f478ab58bdfdb223492f45",
      "tree": "7068f5680d766f10f0a412fee80ca23636a2c7bf",
      "parents": [
        "1179b7b770c096e93442b9c6afea4730283256f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 02 18:01:13 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 10:12:52 2014 -0800"
      },
      "message": "Make ModifyCardsAtomic 64 bit safe.\n\nThere was some logic which assumed sizeof(uintptr_t) \u003d\u003d 4 bytes.\nNew method also provides a slight speedup in\nFormulaEvaluationActions.EvaluateAndApplyChanges\n\nAllocSpaceClearCards:\n\nBefore total time spent aging alloc space cards:\n914ms @ 389 GC iterations\n886ms @ 386 GC iterations\n906ms @ 413 GC iterations\n\nAfter:\n865ms @ 376 GC iterations\n857ms @ 386 GC iterations\n826ms @ 379 GC iterations\n\nChange-Id: Ie375b7e57c36a0257a4ffe5a1622ffb6754509c7\n"
    },
    {
      "commit": "b48b9eb6d181a1f52e2e605cf26a21505f1d46ed",
      "tree": "117d99c16f201b2f14adfe0922e56b9ff433c133",
      "parents": [
        "3c506f9877b4a106d93169b6bb5610b24a84d61c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 16:20:21 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 19:03:57 2014 -0800"
      },
      "message": "Fix clang to compile and run host tests.\n\nDon\u0027t use the computed goto interpreter with clang 3.4 as it causes compilation\nto hang.\nAvoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it\nsets clang incompatible cflags.\nMost fixes are self-evident, for the quick dex file method inliner the enums\nwere being used with ostreams, so fix the enums and operator out python script\nto allow this.\nNote this change effects portable but this is untestable as portable was broken\nby ELF file and mc linker changes.\n\nChange-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903\n"
    },
    {
      "commit": "15d3402bbf8265eb1165694da2e4117eb128f3bc",
      "tree": "eea2dae3c338d3070f63e086fa2a3669a9204873",
      "parents": [
        "ba8fdcc10193cdfa825c973d740b7ebf6dec2d89"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 26 17:16:38 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 28 17:02:17 2014 -0800"
      },
      "message": "Add custom SIGSEGV handler to help find heap corruption.\n\nThe new signal handler prints heap diagnostics when you get a SIGSEGV.\nAdded a fault message member in runtime which is modifiable by\nRuntime::SetFaultMessage. When you get a SIGSEGV it will print out\nwhatever is stored in this string as well as the normal information.\nThis is useful for debugging heap corruption since it lets you see\nwhich threads were in which methods when the last GC occured.\n\nAdded some smarter object dumping logic when the faulting address is\nin the heap.\n\nBug: 12934910\n\nChange-Id: Ia72be2c39f70ad711cbd746d66fad2b617d5d29f\n"
    },
    {
      "commit": "7a5d1c0a7b2923f71a9b0a322ef9839bd07b4868",
      "tree": "f31c2c1f429bf1cdfa7e6fa8ae125240c594a6c7",
      "parents": [
        "7aa9ac0b25c9f391fd87f72edbf14baab9da918f",
        "a2806550cefb7c70781d8ee6279e6ad5769804cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 22:53:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 27 22:53:09 2014 +0000"
      },
      "message": "Merge \"Remove some stray stringpiece.h includes\""
    },
    {
      "commit": "a2806550cefb7c70781d8ee6279e6ad5769804cb",
      "tree": "464c0dd8018379c65db92772644de5d426f2949d",
      "parents": [
        "95c2e440582f31f77a047797a5e2be4af53a8bfa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:29:32 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:29:32 2014 -0800"
      },
      "message": "Remove some stray stringpiece.h includes\n\nBug: 13186058\nChange-Id: I2cb313425864a5d4e988fcf71a99c60ad63c63fb\n"
    },
    {
      "commit": "bd0a65339a08dc28c6b56d2673f1f13b6bddd7aa",
      "tree": "bf78a1fc3ca89fd753518d351b5d3f18ed2906b2",
      "parents": [
        "e58d0203351d9740a8f74a140fdee342168e6552"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 11:14:21 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 11:50:09 2014 -0800"
      },
      "message": "Enable large object space for command line runs.\n\nAdded a dynamic large_object_threshold_ variable which is max int\nwhen the large object space is disabled.\n\nNo longer clear timing logger timings after zygote creation since\nit is not required and removes the boot semispace timings.\n\nChange-Id: I693865f4699cc32381199377239854c6ec42f37e\n"
    }
  ],
  "next": "a55cf41c9d1da7ee8b2f63974dedfb484042dd03"
}
