)]}'
{
  "log": [
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "507dfdd147c97bfbadebfd63584d094b6a4e7b47",
      "tree": "cce43931b6dcd088cb2932c2491f86116353a27f",
      "parents": [
        "922ddb30982d2597eab634d8b8598bec0eb7d3b7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:42:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:50:51 2014 -0700"
      },
      "message": "Compatibility layer to transition from UniquePtr to std::unique_ptr.\n\nUse ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,\nfor the host switch to std::unique_ptr. For now the type remains called\nUniquePtr.\nMake dalvik compile with clang on the host, move its build to C++11.\n\nChange-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12\n"
    },
    {
      "commit": "622d9c31febd950255b36a48b47e1f630197c5fe",
      "tree": "8a7f14ce3c6c087955ad5fe91a3ce7d5b5a82461",
      "parents": [
        "98a8a542f95e41c09d214a329a940b270f08f5b3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 12 16:11:02 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 13 09:06:14 2014 +0100"
      },
      "message": "Add loop recognition and CFG simplifications in new compiler.\n\nWe do three simplifications:\n- Split critical edges, for code generation from SSA (new).\n- Ensure one back edge per loop, to simplify loop recognition (new).\n- Ensure only one pre header for a loop, to simplify SSA creation (existing).\n\nChange-Id: I9bfccd4b236a00486a261078627b091c8a68be33\n"
    },
    {
      "commit": "4d466a8e4587422c989705dce3b2a19e7f0137f5",
      "tree": "bd8f0f45db9a7d5888b14a070690f59fb599bd68",
      "parents": [
        "f1c036fc8fa97617cc42bda44a0adbc7b856d6cd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 08 19:05:29 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 09 12:23:00 2014 -0700"
      },
      "message": "Remove all LOG(DEBUG) which is not intended to be checked in\n\nBug: 14632493\nChange-Id: Id9da8b87798af0a1b2bd2c178133e5f1ba47d43d\n"
    },
    {
      "commit": "2d1ab0a7bf7639d1af0c453415f9625110c34f6d",
      "tree": "765ff7d49c4a9016bfbdf92a43f2aed2c0d0f4d3",
      "parents": [
        "4884ba0c06fbd167a29a057787f4f35160d2ebd1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 08 15:27:31 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 08 16:59:29 2014 -0700"
      },
      "message": "Use WaitHoldingLocks in ReferenceProcessor::GetReferent.\n\nThe caller may be holding other locks, so we must use this or else\nwe get bad mutexes held errors. Also added a lock level for the\nreference processor.\n\nChange-Id: I364a303a4106982bd9bfaac5b116cea1638ea6d3\n"
    },
    {
      "commit": "221b86d96f6e1971d24e3d6a283352c58cedbd32",
      "tree": "f80439dc10bf971004472a7aa609aa0a9cff65eb",
      "parents": [
        "60280e50c1ef4a7ef286670975a81f8384138f42",
        "b5c9b4008760c9042061490f22aaff990ed04c9a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 07 15:15:46 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 07 15:15:46 2014 +0000"
      },
      "message": "Merge \"ART: BitVector and Optimization changes\""
    },
    {
      "commit": "f23a719218ffaa37a85482e40509e62275554774",
      "tree": "d04b4d12264758169a7d6c8ede2427f1078249f3",
      "parents": [
        "290fda3acf3d9ce60f7ac3903fabfb01d3521d0f",
        "804d09372cc3d80d537da1489da4a45e0e19aa5d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 07 09:33:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 07 09:33:54 2014 +0000"
      },
      "message": "Merge \"Build live-in, live-out and kill sets for each block.\""
    },
    {
      "commit": "804d09372cc3d80d537da1489da4a45e0e19aa5d",
      "tree": "b226350fdf3dc0c55a11e1615010c8475f167f90",
      "parents": [
        "0095e0b8380a8802f40a21928800b9df6e11f1d7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 02 08:46:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 07 10:32:11 2014 +0100"
      },
      "message": "Build live-in, live-out and kill sets for each block.\n\nThis information will be used when computing live ranges of\ninstructions.\n\nChange-Id: I345ee833c1ccb4a8e725c7976453f6d58d350d74\n"
    },
    {
      "commit": "b5c9b4008760c9042061490f22aaff990ed04c9a",
      "tree": "c3fc539b056dadcad2c47c9899caeecc5f2d00ae",
      "parents": [
        "36b65964d128471d917c2efc69c81bc50ef9360b"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Wed Apr 30 14:52:00 2014 -0700"
      },
      "committer": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Tue May 06 13:47:51 2014 -0700"
      },
      "message": "ART: BitVector and Optimization changes\n\n- The BitVector has a function SameBitsSet that is a bit upside down\n  - This patch fixes it.\n\n- Two optimizations are fixed also:\n  - The null check pass uses now same bits set instead of equal due to a\n     subsequent change that will make it not always the case that  the\n     compared bitvectors be of the same size.\n  - The fused optimization supposes a predecessor will have an instruction.\n\nChange-Id: I9ef1c793964b18dc0f47baf9d1f361448bb053a3\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Yixin Shou \u003cyixin.shou@intel.com\u003e\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\nSigned-off-by: Udayan Banerji \u003cudayan.banerji@intel.com\u003e\n"
    },
    {
      "commit": "5cd33753b96d92c03e3cb10cb802e68fb6ef2f21",
      "tree": "b2217cb48e1f1db1aae7a92f8d5dbac5f2d95603",
      "parents": [
        "8ea5baa10b04e9dbd0f0cf14b0358fe8b956bb2e"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Apr 15 15:57:58 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon May 05 12:44:15 2014 -0700"
      },
      "message": "Handle implicit stack overflow without affecting stack walks\n\nThis changes the way in which implicit stack overflows are handled\nto satisfy concerns about changes to the stack walk code.\n\nInstead of creating a gap in the stack and checking for it in\nthe stack walker, use the ManagedStack infrastructure to concoct\nan invisible gap that will never be seen by a stack walk.\n\nAlso, this uses madvise to tell the kernel that the main stack\u0027s\nprotected region will probably never be accessed, and instead\nof using memset to map the pages in, use memcpy to read from\nthem.  This will save 32K on the main stack.\n\nAlso adds a \u0027signals\u0027 verbosity level as per a review request.\n\nBug: 14066862\nChange-Id: I5257305feeaea241d11e6aa6f021d2a81da20b81\n"
    },
    {
      "commit": "8194963098247be6bca9cc4a54dbfa65c73e8ccc",
      "tree": "547cc708e06e6541676b17066023ae6f07b2049b",
      "parents": [
        "56a341a82ece9aa4f2a071629f3e1fd1adf988ae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 11:53:22 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 12:21:02 2014 +0100"
      },
      "message": "Replace CountOneBits and __builtin_popcount with POPCOUNT.\n\nClean up utils.h, make some functions constexpr.\n\nChange-Id: I2399100280cbce81c3c4f5765f0680c1ddcb5883\n"
    },
    {
      "commit": "6d2387765ed0a898281d126bc3d4f9b124667d5d",
      "tree": "63822d72bb1e4d326b2c8f82df5541fd3833f04d",
      "parents": [
        "990d46f3333dce06a640ced697ee069330a73d7c",
        "5afa08f95d43dd24fb4b3d7a08aa1ec23386ad54"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 28 10:18:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 28 10:18:30 2014 +0000"
      },
      "message": "Merge \"ART: Bitvector extensions for dumping and size handling\""
    },
    {
      "commit": "73d1e17b3afc7d5e56184f90bf819dc64956448a",
      "tree": "6fee546dcebc0c8979a62be7e75c337f79b2ac2e",
      "parents": [
        "e8256e7773a230337c3d137cbf0365f737820405"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 17:53:48 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 25 14:08:49 2014 -0700"
      },
      "message": "Enable reading page map without lock in RosAlloc::BulkFree\n\nEnabling this flag greatly reduces how much time was spent in the GC.\nIt was not done previously since it was regressing MemAllocTest. With\nthese RosAlloc changes, the benchmark score no longer regresses after\nwe enable the flag.\n\nChanged Run::AllocSlot to only have one mode of allocation. The new\nmode is finding the first free bit in the bitmap. This was\npreviously the slow path but is now the fast path. Some optimizations\nwhich enabled this include always having the alloc bitmap bits which\ncorrespond to invalid slots be set to 1. This prevents us from needing\na bound check since we will never end up allocating there.\n\nChanged revoking thread local buffer to point to an invalid run. The\ninvalid run is just a run which always has all the allocation bits set\nto 1. When a thread attempts to do a thread local allocation from here\nit will always fail and go slow path. This eliminates the need for a\nnull check for revoked runs.\n\nChanged zeroing of memory to happen during free, AllocPages should\nalways return zeroed memory. Added prefetching which happens when we\nallocate a run.\n\nSome refactoring to reduce duplicated code.\n\nErgonomics changes: Changed kStickyGcThroughputAdjustment to 1.0,\nthis helps reduce GC time.\n\nMeasurements (3 samples per benchmark):\nBefore: MemAllocTest scores: 3463, 3445, 3431\nEvaluateAndApplyChanges score | total GC time\nIter 1: 3485, 23.602436s\nIter 2: 3434, 22.499882s\nIter 3: 3483, 23.253274s\n\nAfter: MemAllocTest scores: 3495, 3417, 3409\nEvaluateAndApplyChanges score | total GC time:\nIter 1: 3375, 17.463462s\nIter 2: 3358, 16.185188s\nIter 3: 3367, 15.822312s\n\nBug: 8788501\nBug: 11790317\nBug: 9986565\nChange-Id: Ifd273a054824028dabed27c07c081dde1816f93c\n"
    },
    {
      "commit": "5afa08f95d43dd24fb4b3d7a08aa1ec23386ad54",
      "tree": "28d388989be9ccdfce387728f63820689c29e9ca",
      "parents": [
        "1c17753ca9cf125ffd1fa47f34650fb6f4005409"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Tue Apr 15 15:54:35 2014 -0700"
      },
      "committer": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Thu Apr 24 12:20:40 2014 -0700"
      },
      "message": "ART: Bitvector extensions for dumping and size handling\n\n- Added dumping functions and the ensure size and clear function.\n- Fixed a bug in union where if a bit is not set in the source, an buffer\n   overflow can occur later down.\n\nChange-Id: Iff40529f3a8970a1ce2dd5c591f659f71924dea3\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\nSigned-off-by: Razvan A Lupusoru \u003crazvan.a.lupusoru@intel.com\u003e\nSigned-off-by: Yixin Shou \u003cyixin.shou@intel.com\u003e\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\nSigned-off-by: Udayan Banerji \u003cudayan.banerji@intel.com\u003e\n"
    },
    {
      "commit": "82b1a81890970a8b07f9132aeae537a6c43df6b0",
      "tree": "43ac558ccae56799d093e58c128af83511889f5f",
      "parents": [
        "618a87009202dc959c935ed8f237ae32bdec57d0",
        "d3c5bebcb52a67cb06e7ab303eaf45f230c08b60"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 22 13:25:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 13:25:20 2014 +0000"
      },
      "message": "Merge \"Avoid allocating OatFile::OatClass on the heap.\""
    },
    {
      "commit": "42d65c52bbf4a354605389a759190e793787f692",
      "tree": "98dd633038cbc1ae0ccdda3de1f73e79a9ab4049",
      "parents": [
        "fa25af3e3410537e86b485682d519dafbad01753"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Apr 18 16:49:39 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Apr 18 16:51:15 2014 -0700"
      },
      "message": "Add an option to specify a list of methods for LIR dumping.\n\nAn example would be:\n--runtime-arg -verbose-methods:Array.checkRange32,Array.checkRange64\nor\n\"-verbose-methods:void Array.checkRange32,void Array.checkRange64\"\n\nChange-Id: I61c1eb3b2eb4b24126a9264261c27889d53cc6bd\n"
    },
    {
      "commit": "01bc96d007b67fdb7fe349232a83e4b354ce3d08",
      "tree": "1ed36c2d7c0fb204e6f276bd9853153d9350ad1d",
      "parents": [
        "2be6fc74bce10ac68d3d1b39a5019f520ad170ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 11 17:43:50 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 16 14:21:12 2014 +0100"
      },
      "message": "Long support in optimizing compiler.\n\n- Add stack locations to the Location class.\n- Change logic of parameter passing/setup by setting the\n  location of such instructions the ones for the calling\n  convention.\n\nChange-Id: I4730ad58732813dcb9c238f44f55dfc0baa18799\n"
    },
    {
      "commit": "d3c5bebcb52a67cb06e7ab303eaf45f230c08b60",
      "tree": "85df477ba745b1e2c85ab1d167b0297236060f2f",
      "parents": [
        "043a7a6182870964021476484b1534106ff20600"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 11 16:32:51 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 14 18:03:41 2014 +0100"
      },
      "message": "Avoid allocating OatFile::OatClass on the heap.\n\nAvoid allocating a BitVector for OatFile::OatClass::bitmap_\nwith kOatClassSomeCompiled methods. That makes the OatClass\ncopy-constructible as it doesn\u0027t own any memory. We use that\nin OatFile::OatDexFile::GetOatClass() to return the result\nby value thus avoiding one or two heap allocations per call.\n\nChange-Id: Ic7098109028a5b49e39ef626f877de86e732ed18\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": "8732bf96433bbc177de509390d285b2d5477c83d",
      "tree": "3c8974efdff51311910e155b226a7e64060c7e7b",
      "parents": [
        "7f466c08888129a9923cb973a4dc73ee4a71574e",
        "51b71028661092e8860cca4f8ca79848e03cdc2c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 31 10:03:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 31 10:03:08 2014 +0000"
      },
      "message": "Merge \"Remove use of pthread_cond_timedwait_monotonic.\""
    },
    {
      "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": "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": "4d25df3f76f864b7629ac8c0046d46997f293d8d",
      "tree": "31840831d8c81d06ffd575fdb0adc8403cd8dbb1",
      "parents": [
        "909f133bc938928a2403baccc983701cb9ebb17f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Mar 21 17:44:46 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Mar 26 11:46:43 2014 +0100"
      },
      "message": "Refactor deoptimization support in debugger\n\nThis CL prepares breakpoint support for inlined methods where we\u0027ll have to\ndeoptimize everything.\n\nWe move deoptimization-related information to Dbg class only (deoptimization\nrequest queue, full deoptimization event count and deoptimization lock). We\nreplace MethodInstrumentionRequest by DeoptimizationRequest. This is used to\nknow which kind of deoptimization is required for a particular event.\n\nIt also simplifies lock ordering a bit during event setup: we no longer need to\nhold the deoptimization lock while holding the breakpoint lock. Moreover, the\ndeoptimization lock should be held only after the event list lock.\n\nBug: 12187616\nChange-Id: Iff13f004adaeb25e5d609238bacce0b9720510e6\n"
    },
    {
      "commit": "51b71028661092e8860cca4f8ca79848e03cdc2c",
      "tree": "ebb78fc3f6af61ba5d015ddaf0d28d6c3cbbbac1",
      "parents": [
        "c5db77cce4138ac1f473872a06d230d876374337"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 04 11:57:09 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 20 10:11:13 2014 +0000"
      },
      "message": "Remove use of pthread_cond_timedwait_monotonic.\n\nUse posix compliant pthread_condattr_setclock instead.\nAlso, remove usage of HAVE_TIMEDWAIT_MONOTONIC and replace\nit with a specific reference to the only supported platform\nthat doesn\u0027t have it.\n\nChange-Id: I933f05c5b4965bab88ccd8e3e26c91549ed4184d\n"
    },
    {
      "commit": "9758f79a6c1ef7f662caca9c1df39de1934166b8",
      "tree": "fdffb18605692c990665f3e99a17dcb0efb09893",
      "parents": [
        "c1020433660737d466b0d726bbeb86d9a279a44a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 13 09:02:55 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 13 09:12:20 2014 -0700"
      },
      "message": "Implement FINAL/OVERRIDE for clang.\n\nSeparate declaration from definition in certain places to work-around issues\nwith clang.\nRemove bogus lock annotation at definition in compilers.cc that is already\npresent at the declaration.\nRemove duplicate definition of ClassReference.\n\nChange-Id: I5368057bb36319a259110b2198610d9d2b2e5041\n"
    },
    {
      "commit": "cfa5c4805b9e756aaa142047306bad2b13107834",
      "tree": "067839e9acc27de8c6c4abf7e5447ec943a50250",
      "parents": [
        "63dcdff34c40a64df6939ea5bba71813abd2acd3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 12 14:11:40 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 12 14:20:31 2014 -0700"
      },
      "message": "Fix tests for 64b\n\nThese tests make assumptions about pointer sizes.\n\nChange-Id: Idfd410144393d716ae176a6e9a51c5b414e0888e\n"
    },
    {
      "commit": "4812d436ebf538043a7827253b2e940a52a43fcb",
      "tree": "18667db8756044a2625385b9ac3eab2a94451678",
      "parents": [
        "b28bdd624b63a52e4a69b93fa9abee6fbd393610"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 11 12:42:25 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 11 12:43:22 2014 +0000"
      },
      "message": "Fix BitVector::SetInitialBits().\n\nChange-Id: Iad3699d76ad69536aa4810329f5863bc995f6551\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": "6fac447555dc94a935b78198479cce645c837b89",
      "tree": "bcf1449999084b1e1dec3dac287f6f3670d7eda0",
      "parents": [
        "7f0ff7e7fff82566bca5f9353eaa2c4f81f0671a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 25 17:01:10 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 26 16:38:22 2014 -0800"
      },
      "message": "Make allocations report usable size.\n\nWork-in-progress to allow arrays to fill usable size. Bug: 13028925.\nUse C++11\u0027s override keyword on GCC \u003e\u003d 2.7 to ensure that we override GC and\nallocator methods.\nMove initial mirror::Class set up into a Functor so that all allocated objects\nhave non-zero sizes. Use this property to assert that all objects are never\nlarger than their usable size.\nOther bits of GC related clean-up, missing initialization, missing use of\nconst, hot methods in .cc files, \"unimplemented\" functions that fail at\nruntime in header files, reducing header file includes, move valgrind\u0027s space\ninto its own files, reduce number of array allocation routines.\n\nChange-Id: Id5760041a2d7f94dcaf17ec760f6095ec75dadaa\n"
    },
    {
      "commit": "a1ce1fef2d49d1d537776a5308ace7102a815fe5",
      "tree": "a1afe850d9ebd21f4b751eb68e1ec3dc60dab001",
      "parents": [
        "930f7b843ddc6e6530439d3fdb0e2133a6292f1e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 23:23:58 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 13:17:44 2014 -0800"
      },
      "message": "Split up CommonTest into CommonRuntimeTest and CommonCompilerTest\n\nChange-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70\n"
    },
    {
      "commit": "7cba217ab0661d74deccbb97160cdf60b74d4ea3",
      "tree": "509f912447ef4dcafc4f043267bf990cee62167c",
      "parents": [
        "3ece181223974d8c081fb88cfbec8d85fd194d66",
        "ad0d30a2a2141aa0e9da9e97993ce20e4d8e056e"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@android.com",
        "time": "Mon Feb 10 18:18:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 10 18:18:04 2014 +0000"
      },
      "message": "Merge \"Update to the BitVector Implementation\""
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "43b2e0f9105848da6470458e7c04bf1fd7fcb25c",
      "tree": "65406c86398c27c934169251c3a4446e99c885f7",
      "parents": [
        "f7eedc939e9dc07b627b2f94eb132155be992883"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 30 16:58:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 30 16:58:39 2014 -0800"
      },
      "message": "Fix multi-line hex dumping and add unit test.\n\nChange-Id: I7657018fef5d9c17410a9a634db275555f180014\n"
    },
    {
      "commit": "3cab422021b121cad7a4592114f1b28f636b599d",
      "tree": "1f3b452fe5324a6695feea882f67ad2cc4d34a95",
      "parents": [
        "c666ee8c75118d072bfd2a2b81b80915f6040593"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 18:15:19 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 18:15:19 2014 -0800"
      },
      "message": "Move __STDC_FORMAT_MACROS to a cflag.\n\nCurrent inttypes.h don\u0027t define stdint printf formatting characters for C++ but\nin the future this will change. Rather than #define __STDC_FORMAT_MACROS at the\npoint of inclusion (conventional) pass it as a cflag so there is a single place\nto remove the #define when conventions change.\n\nChange-Id: Ice2fb07e19d8fc06ebc534c903a2d02497c31b3d\n"
    },
    {
      "commit": "919743e49fb6301d30910d709e73fbf559de968b",
      "tree": "d21e83248f4ea6f1addb77972c395caad22ba675",
      "parents": [
        "399b09b8ef9d53769d5084ba1cf0d3e964bb0a1a",
        "220228e07dac607d97c8019ceee73d29b28d5100"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 18:05:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 23 18:05:27 2014 +0000"
      },
      "message": "Merge \"64bit cleanliness requires PRI*64 macros for stdint types.\""
    },
    {
      "commit": "b400da011e434913030aa250594738de5e0ef9e6",
      "tree": "b449b952cfb04efe8a47f9240a52b782755fd850",
      "parents": [
        "9d8918fe97c235fdc6eb2c7f2d50a6673ab50329"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 08:28:28 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 09:52:04 2014 -0800"
      },
      "message": "Fix 64bit issues in logging code.\n\nChange-Id: Ia73d0141348b3f74a9949012b0060dd4acb5e3b8\n"
    },
    {
      "commit": "220228e07dac607d97c8019ceee73d29b28d5100",
      "tree": "4ce227c7fca8453a8eedb0834a5728043766dd95",
      "parents": [
        "9d8918fe97c235fdc6eb2c7f2d50a6673ab50329"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 09:08:16 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 09:11:41 2014 -0800"
      },
      "message": "64bit cleanliness requires PRI*64 macros for stdint types.\n\nChange-Id: I0cdce36d5f875cdc64cd2db22fd8179916ffa10f\n"
    },
    {
      "commit": "ad0d30a2a2141aa0e9da9e97993ce20e4d8e056e",
      "tree": "90af62fbfc9a05b8d29bdf54d96f128183bce92b",
      "parents": [
        "1776f50b5b99782278d7f3d354fa956d9066c903"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Thu Jan 16 09:00:18 2014 -0800"
      },
      "committer": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Fri Jan 17 13:37:14 2014 -0800"
      },
      "message": "Update to the BitVector Implementation\n\nIsBitSet:\n- If the index requested is above the size, return false.\n\nClearBit:\n- If the index requested is above the size, ignore.\n\nAdded SameBitsSet:\n- Check the bits set disregarding size and expandable.\n\nIntersect and Union:\n- removed the requirement of same size.\n- handles case where the sizes are not the same.\n\nAdded Subtract between BitVectors.\n\nSetInitialBits:\n- Now requests expansion if above the bits available.\n- Clears upper bits.\n\nAdded GetHighestBitSet.\n\nClearBit:\n- If we clear above the size, it is fine, it has not been set yet.\n\nCopy:\n- Supposes it is well allocated.\n- It used to just copy what was available in destination without checking source\u0027s size.\n- Now actually allocate the destination to make sure it holds enough space.\n- Set parameter to const.\n\nGeneral:\n- Moved sizeof(uint32_t) to sizeof(*storage_) for future maintenance.\n\nChange-Id: Iebb214632482c46807deca957f5b6dc892a61a84\n"
    },
    {
      "commit": "b122a4bbed34ab22b4c1541ee25e5cf22f12a926",
      "tree": "624f16271f4481a8fd5aa2f607385f490dc7b3ae",
      "parents": [
        "e40687d053b89c495b6fbeb7a766b01c9c7e039c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 19 18:00:50 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 20 08:01:57 2013 -0800"
      },
      "message": "Tidy up memory barriers.\n\nChange-Id: I937ea93e6df1835ecfe2d4bb7d84c24fe7fc097b\n"
    },
    {
      "commit": "460536209b741bc469f1b0857775449abb2102fb",
      "tree": "4bc7f636b86ab2531811827d0fd0c33011a7280e",
      "parents": [
        "19031d51ab9edfc3b1996891d654a6b86ca937c0"
      ],
      "author": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Thu Dec 12 02:15:52 2013 +0100"
      },
      "committer": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Thu Dec 12 13:08:03 2013 +0100"
      },
      "message": "Don\u0027t rely on gcc extensions\n\nMake the code more compatible with different compilers.\nclang doesn\u0027t allow extra static qualifiers on template\nspecializations, const qualifiers on function types,\nor inline attributes on lambda functions, and is more\npicky about casting away constness with reinterpret_cast.\n\nThese modifications are compatible with both gcc and\nclang.\n\nChange-Id: I739b10df2780bec537827a13679fd2bcc2cc7188\nSigned-off-by: Bernhard Rosenkränzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "19031d51ab9edfc3b1996891d654a6b86ca937c0",
      "tree": "8fab5f25e718fb218699b15a8197606e2e6f8322",
      "parents": [
        "8755359a35a4aa915fe3753633015263c7e97b74",
        "45c1165558eb8f9c81843b63ed362079a60c8387"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 12 01:36:18 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 12 01:36:19 2013 +0000"
      },
      "message": "Merge \"Define missing static constexpr variables\""
    },
    {
      "commit": "45c1165558eb8f9c81843b63ed362079a60c8387",
      "tree": "2ad5839a44113fc41369658f422d4ae093463e3a",
      "parents": [
        "e11eb154b52e2036d775c2df491a70bf7ef04de3"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Dec 11 12:27:35 2013 -0800"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Dec 11 12:40:13 2013 -0800"
      },
      "message": "Define missing static constexpr variables\n\nThis will prevent link errors when undefined symbols when compiling at\n-O0.  Normally, this isn\u0027t a problem, but causes failure when compiling\nat -O0 to maximize debugability\n\nChange-Id: Iafe187b6b9344fead1bbc73004e376fad821756b\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "c528dba35b5faece51ca658fc008b688f8b690ad",
      "tree": "d95c113a639d07f7e3b88e8a6caa9b5f6e044801",
      "parents": [
        "76f552307ee980221626d1dff0ada56c989d24ca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 26 12:00:11 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 10 16:00:58 2013 -0800"
      },
      "message": "Enable moving classes.\n\nSlight reduction in Zygote size, memory savings are in the noise.\nBefore: Zygote size: 8739224\nAfter: Zygote size: 8733568\n\nFixed a bug where we didn\u0027t set the concurrent start bytes after\nswitching the allocator from bump pointer to ROSAlloc in the\nzygote. This caused excessive memory usage.\n\nAdded the method verifiers as roots to fix an issue caused by\nRegTypes holding a Class*.\n\nAdded logic to clear card table in the SemiSpace collector, this\nreduces DalvikOther from ~2400k -\u003e ~1760k when using the SemiSpace\ncollector.\n\nAdded a missing lock to the timing loggers which caused a rare\none time crash in std::set.\n\nBug: 11771255\nBug: 8499494\nBug: 10802951\n\nChange-Id: I99d2b528cd51c1c5ed7012e3220b3aefded680ae\n"
    },
    {
      "commit": "af82e0cce0f7fe5611c47493372183a7963397bf",
      "tree": "cbe4b1eccd07c30587f47575192d11321704aa9d",
      "parents": [
        "83a9962f4062cd91e823a2a948aba3887cbe32aa",
        "c01417898a6e4f8a5663d6c0556982488c133cdf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 26 22:31:08 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 26 22:31:08 2013 +0000"
      },
      "message": "Merge \"[MIPS] Enable futex support\""
    },
    {
      "commit": "7410f29b4dae223befac036ea567d7f33351dad1",
      "tree": "895d3f03073fca0ca6715bcb523816fa6f03cc0a",
      "parents": [
        "f3bfe67040b46d926d05009e914195e78c5d8685"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Nov 24 13:17:35 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 25 11:12:58 2013 -0800"
      },
      "message": "Fix dumpsys meminfo \u003cpid\u003e.\n\nAdded a case for BumpPointerSpaces. Confirmed working non-debug.\nShould also work in debug builds.\n\nBug: 11830794\nChange-Id: I12053ff16eec403dcd4a780e13095e3212a77132\n"
    },
    {
      "commit": "b2f9936cab87a187f078187c22d9b29d4a188a62",
      "tree": "601a1673d4c4aca428d69dff29a80c8f10cad214",
      "parents": [
        "dcc5c7598d38fcb555266c8618df720acea3b954"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 20 17:26:00 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 21 12:02:28 2013 -0800"
      },
      "message": "Add histogram for GC pause times.\n\nPrinted when you dump the GC performance info.\n\nBug: 10855285\nChange-Id: I3bf7f958305f97c52cb31c03bdd6218c321575b9\n"
    },
    {
      "commit": "3e669dba962dc5291de0642eb46ede107be4e5a4",
      "tree": "96296f8e66a954e568719fa49bbcec98cb58bc37",
      "parents": [
        "cc9e9a375924f5a3de1339818945f1f6ae09becb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 20 15:51:12 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 20 15:52:07 2013 -0800"
      },
      "message": "Fix histogram test.\n\nThe test compares outputted strings for some reason. Forgot to run\nit earlier.\n\nChange-Id: I9eed08350d0122614cb2e18ca7195e5dc0832da6\n"
    },
    {
      "commit": "19b0a913d9127a70ca35ebae166312bc6eee3196",
      "tree": "d41786c6425a535f37aa90fc1f4621b24793eb6c",
      "parents": [
        "1febddf359ae500ef1bb01ab4883b076fcb56440"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 20 14:07:54 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 20 15:28:24 2013 -0800"
      },
      "message": "Improve histogram and timing logger dumping.\n\nWe now dump the sum (total time) of each histogram as well as\nprevious stats. This is useful for the GC since the same split can\noccur multiple times per GC iteration. Also did a few memory\noptimizations by changing the map in the cumulative loggers\nto be a set.\n\nBug: 11789200\nChange-Id: I67bcc5384200924c8dc5d9eebcff077ce72b7e57\n"
    },
    {
      "commit": "500793f33b8af8bc7ccf5595a66b4b13bce766bc",
      "tree": "b45e15242692d64646c3ef09e555106cb61b8040",
      "parents": [
        "f44e87fcf2f9cdf5e7e623dce667e2472c8d830e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 14 17:49:12 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 14 17:49:12 2013 -0800"
      },
      "message": "LEB128 tests and performance measurements.\n\nChange-Id: I1850a2ff9225cfab8f896619c212b1b55f03ae94\n"
    },
    {
      "commit": "c01417898a6e4f8a5663d6c0556982488c133cdf",
      "tree": "ea1596f2c93d8cd83d8cddc03fb7642b4920cbce",
      "parents": [
        "fa91a0705ce6651a3f3f20dd55a86842eea65c2e"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Thu Nov 14 17:29:21 2013 -0800"
      },
      "committer": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Thu Nov 14 17:30:39 2013 -0800"
      },
      "message": "[MIPS] Enable futex support\n\nChange-Id: I4095d889229fe1b96f7b276d7952b3578c8fcd6d\n"
    },
    {
      "commit": "5fe9af720048673e62ee29597a30bb9e54c903c5",
      "tree": "733dca70511f4798a3082b084a9a3d6da9f5914a",
      "parents": [
        "dfe78a6e6b526d482298100a1f6392a8c7105522"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 14 00:17:20 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 14 14:59:57 2013 -0800"
      },
      "message": "Fix memory leaks relating to timing logger.\n\nBug: 11670287.\nWe use pointers to uninitialized values for control-flow in the timing logger\ncode, add TODO comments to clean this up later.\nRemove base namespace and other bits of tidying.\n\nChange-Id: I1e6600a1e92f974c8f58f3a405a4e4abb4d9f80f\n"
    },
    {
      "commit": "1e363f96a8e5386282340bb37972dcc823b42e2e",
      "tree": "38d072dbb87b0b1f032a7104760f4a9e8636d6e4",
      "parents": [
        "34e82934546bd470283346907bd7b74990797c56"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 13 15:58:24 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 13 15:58:24 2013 -0800"
      },
      "message": "Use a UniquePtr to clean up global logging std::string*s.\n\nThis makes valgrind happier.\nBug: 11670287\n\nChange-Id: I957b94cdc177665e66b069e4d2b2b8d0a4b589c8\n"
    },
    {
      "commit": "34e82934546bd470283346907bd7b74990797c56",
      "tree": "578a6cb08be336c52609f3acb832cd213b9e187a",
      "parents": [
        "46bc778f1feed02b20d25e3d03470c93ca2c0506"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 12 18:22:47 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 12 18:22:47 2013 -0800"
      },
      "message": "Fix remaining mips build issues.\n\nMissed a few things in mutex.cc.\n\nChange-Id: I1c3acfc5faa2511490170199c03ab74c1f23022a\n"
    },
    {
      "commit": "46bc778f1feed02b20d25e3d03470c93ca2c0506",
      "tree": "ac760c321039cd8a5e78ae766accf4dc3ddb194b",
      "parents": [
        "0b74e3acc2fd35d95ac55c4ee2ffe5c651229ed8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 12 17:03:02 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 12 17:03:02 2013 -0800"
      },
      "message": "Fix portable + mips build.\n\nChange-Id: Ia200e582b04c84973281e12331777351feb8a401\n"
    },
    {
      "commit": "590fee9e8972f872301c2d16a575d579ee564bee",
      "tree": "b02db45c72f1911ec896b93379ada0276aea3199",
      "parents": [
        "5b70680b8df6d8fa95bb8e1070d0107f3d388940"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 13:46:47 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 11 15:34:27 2013 -0800"
      },
      "message": "Compacting collector.\n\nThe compacting collector is currently similar to semispace. It works by\ncopying objects back and forth between two bump pointer spaces. There\nare types of objects which are \"non-movable\" due to current runtime\nlimitations. These are Classes, Methods, and Fields.\n\nBump pointer spaces are a new type of continuous alloc space which have\nno lock in the allocation code path. When you allocate from these it uses\natomic operations to increase an index. Traversing the objects in the bump\npointer space relies on Object::SizeOf matching the allocated size exactly.\n\nRuntime changes:\nJNI::GetArrayElements returns copies objects if you attempt to get the\nbacking data of a movable array. For GetArrayElementsCritical, we return\ndirect backing storage for any types of arrays, but temporarily disable\nthe GC until the critical region is completed.\n\nAdded a new runtime call called VisitObjects, this is used in place of\nthe old pattern which was flushing the allocation stack and walking\nthe bitmaps.\n\nChanged image writer to be compaction safe and use object monitor word\nfor forwarding addresses.\n\nAdded a bunch of added SIRTs to ClassLinker, MethodLinker, etc..\n\nTODO: Enable switching allocators, compacting on background, etc..\n\nBug: 8981901\n\nChange-Id: I3c886fd322a6eef2b99388d19a765042ec26ab99\n"
    },
    {
      "commit": "a3d2718d1fac53210b2a311b1728409d6c8e7b9d",
      "tree": "5f000437e67d2def425d0e25c3b53cef8bf2515b",
      "parents": [
        "f7ee11632e3dfda29d553d8962be9747d5ce6dfd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 05 23:22:27 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 06 01:33:23 2013 -0800"
      },
      "message": "Change thread.h to thread-inl.h to pick up missing Thread::Currnet for debug build in master\n\nChange-Id: I56a4dd18ec1c212f9dbb73b14c0c0623b23c87bd\n"
    },
    {
      "commit": "7020278bce98a0735dc6abcbd33bdf1ed2634f1d",
      "tree": "533cf9a77046a49525d916043a58949e59319f2d",
      "parents": [
        "67f128a4023bbbe55827dd2c11ed0538ee387233"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Oct 22 17:52:19 2013 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Nov 05 16:48:53 2013 -0800"
      },
      "message": "Support hardware divide instruction\n\nBug: 11299025\n\nUses sdiv for division and a combo of sdiv, mul and sub for modulus.\nOnly does this on processors that are capable of the sdiv instruction, as determined\nby the build system.\n\nAlso provides a command line arg --instruction-set-features\u003d to allow cross compilation.\nMakefile adds the --instruction-set-features\u003d arg to build-time dex2oat runs and defaults\nit to something obtained from the target architecture.\n\nProvides a GetInstructionSetFeatures() function on CompilerDriver that can be\nqueried for various features.  The only feature supported right now is hasDivideInstruction().\n\nAlso adds a few more instructions to the ARM disassembler\n\nb/11535253 is an addition to this CL to be done later.\n\nChange-Id: Ia8aaf801fd94bc71e476902749cf20f74eba9f68\n"
    },
    {
      "commit": "ba150c37d582eeeb8c11ba5245edc281cf31793c",
      "tree": "ca12cf82602e4b78b2a6ca463e9d0e35fc5e3ff6",
      "parents": [
        "3c2a6e2468e3e519ade6c3cfcaad7cd34243cdf1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 27 17:31:03 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 28 00:06:03 2013 -0700"
      },
      "message": "Omit OatMethodOffsets for classes without compiled code\n\nChange-Id: If0d290f4aebc778ff12d8fed017c270ad2ac3220\n"
    },
    {
      "commit": "8d31bbd3d6536de12bc20e3d29cfe03fe848f9da",
      "tree": "2373ae08ddddaf1034623df85d647ecf9ac6c831",
      "parents": [
        "57e6d8a99058e5c74d5244b68a5f4d53526fa108"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 13 10:44:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 21 17:01:11 2013 -0700"
      },
      "message": "Throw IOException at source of failing to open a dex file.\n\nBefore is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\nAnd after is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.io.IOException: Zip archive \u0027/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\u0027 doesn\u0027t contain classes.dex\n                at dalvik.system.DexFile.openDexFile(Native Method)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:80)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:59)\n                at dalvik.system.DexPathList.loadDexFile(DexPathList.java:268)\n                at dalvik.system.DexPathList.makeDexElements(DexPathList.java:235)\n                at dalvik.system.DexPathList.\u003cinit\u003e(DexPathList.java:113)\n                at dalvik.system.BaseDexClassLoader.\u003cinit\u003e(BaseDexClassLoader.java:48)\n                at dalvik.system.PathClassLoader.\u003cinit\u003e(PathClassLoader.java:38)\n                at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:128)\n                at java.lang.ClassLoader.access$000(ClassLoader.java:65)\n                at java.lang.ClassLoader$SystemClassLoader.\u003cclinit\u003e(ClassLoader.java:81)\n                at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:137)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\n\nAlso, move dex file verifier messages out of logs.\nIn the process the ClassLinker::dex_lock_ needed tidying to cover a smaller\nscope. Bug 11301553.\n\nChange-Id: I80058652e11e7ea63457cc01a0cb48afe1c15543\n"
    },
    {
      "commit": "d9c4fc94fa618617f94e1de9af5f034549100753",
      "tree": "1305efbbc3d4bc306c0947bb6d4b01553667f98e",
      "parents": [
        "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 01 19:45:43 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 02 09:31:55 2013 -0700"
      },
      "message": "Inflate contended lock word by suspending owner.\n\nBug 6961405.\nDon\u0027t inflate monitors for Notify and NotifyAll.\nTidy lock word, handle recursive lock case alongside unlocked case and move\nassembly out of line (except for ARM quick). Also handle null in out-of-line\nassembly as the test is quick and the enter/exit code is already a safepoint.\nTo gain ownership of a monitor on behalf of another thread, monitor contenders\nmust not hold the monitor_lock_, so they wait on a condition variable.\nReduce size of per mutex contention log.\nBe consistent in calling thin lock thread ids just thread ids.\nFix potential thread death races caused by the use of FindThreadByThreadId,\nmake it invariant that returned threads are either self or suspended now.\n\nCode size reduction on ARM boot.oat 0.2%.\nOld nexus 7 speedup 0.25%, new nexus 7 speedup 1.4%, nexus 10 speedup 2.24%,\nnexus 4 speedup 2.09% on DeltaBlue.\n\nChange-Id: Id52558b914f160d9c8578fdd7fc8199a9598576a\n"
    },
    {
      "commit": "967a0adf8b93a23d2a8fef82e06bd913db94ac19",
      "tree": "35b7fbf6eb1899736213e57e11c85d16c1b4853e",
      "parents": [
        "af3994db1b42929666b6a50c3c4b237a25c99951"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 10 16:24:21 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 11 15:38:23 2013 -0700"
      },
      "message": "More allocation code optimizations.\n\n- Inline Class::AllocObject() and Array::Alloc().\n- Inline some short Mutex functions and add LIKELY/UNLIKELY to some\n  Mutex functions.\n- This change improves the Ritz MemAllocTest by ~6% on Nexus 4 and\n  ~10% on host.\n\nBug: 9986565\nChange-Id: I1606c74ddb21676cbc1de1a40e9b076fc23eaea4\n"
    },
    {
      "commit": "08f2e7b59fab9df108d3d91e6eeb4bbccbb325d1",
      "tree": "a41d65ab0753f4b0a84540c95feacd932c21e0fe",
      "parents": [
        "3b99337ec2a92ca5fc0b3bd1d44be40e5eb2a30f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 09 16:44:02 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 09 17:03:37 2013 -0700"
      },
      "message": "Disable lock contention logging by default.\n\nThe verifier runs out of memory with lock contention logging on nakasi.\n\nBug: 10646091\nChange-Id: I8ddffdb48d779a20107bae7013cbe92d13dc8bdb\n"
    },
    {
      "commit": "7dfb28c066159e6cde8181720f0c451a700ef966",
      "tree": "5279fb95da015365846eb48d931b9355b540cb9e",
      "parents": [
        "a7e885013753df3f07bf038a8c4a187fb97c78e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 22 08:18:36 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 23 10:49:29 2013 -0700"
      },
      "message": "Don\u0027t scan image space when starting runtime.\n\nBug 10432288.\nFind Classes and Strings from dex caches lazily rather than when the image is\nloaded.\nMake class status changes do notifies when there can be waiters.\nFor Class lookup there\u0027s a pathology if we always search dex caches and\nso after 1000 failures move all classes into the class table.\nBe consistent in using \"const char*\" for class linker descriptors as this\nmost easily agrees with the type in the dex file.\nImprove the intern run-test so that it has a case of a literal contained in the\nimage.\nModify image_test to allow any valid lock word rather than expecting 0, ideally\nwe wouldn\u0027t see inflated monitors but we do due to NotifyAll (see bug 6961405).\n\nChange-Id: Ia9bfa748eeccb9b4498784b97c6823141b1f6db8\n"
    },
    {
      "commit": "4aa48fccbd3782d78207a79541b61948a066b8fc",
      "tree": "0dd2dfd04c2d29e20fadc8530c08b182012135c0",
      "parents": [
        "be7149fc2e7cc607937209f2819e3c1d672e2668"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 11:06:10 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 11:06:10 2013 -0700"
      },
      "message": "Enable contention logging by default.\n\nChange-Id: I86314b2dabed81e6fbdeb0ab451ba8176407873e\n"
    },
    {
      "commit": "94c32c5f01c7d44781317bf23933ed0a5bc4b796",
      "tree": "a59e9dcf43671ac624e3db2ed88e5ebd4a65ce9d",
      "parents": [
        "d2b0f33cf01601f040494f4f882e60f70b527930"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 09 11:14:04 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 16 16:30:59 2013 -0700"
      },
      "message": "More parallel GC, rewritten parallel mark stack processing.\n\nCard scanning may now be done in parallel. This speeds up sticky and\nreduces pause times for all GC types.\n\nSpeedup on my mako (ritz perf):\nAverage pause time for sticky GC (~250 samples):\nWithout parallel cards scanning enabled: 2.524904215ms\nParallel card scanning (num_gc_threads_): 1.552123552ms\nThroughput (~250 samples):\nSticky GC throughput with parallel card scanning: 69MB/s\nSticky GC throughput without parallel card scanning: 51MB/s\n\nRewrote the mark stack processing to be LIFO and use a prefetch queue\nlike the non parallel version.\n\nCleaned up some of the logcat printing for the activity manager\nprocess state listening.\n\nAdded unlikely hints to object scanning since arrays and classes are\nscanned much less often than normal objects.\n\nFixed a bug where the number of GC threads was clamped to 1 due to a\nbool instead of a size_t.\n\nFixed a race condition when we added references to the reference\nqueues. Sharded the reference queue lock into one lock for each reference\ntype (weak, soft, phatom, finalizer).\n\nChanged timing splits to be different for processing gray objects with\nand without mutators paused since sticky GC does both.\n\nMask out the class bit when visiting fields as an optimization, this is\nvalid since classes are held live by the class linker.\n\nPartially completed: Parallel recursive mark + finger.\n\nBug: 10245302\nBug: 9969166\nBug: 9986532\nBug: 9961698\n\nChange-Id: I142d09718c4609b7c2387cb28f517a6983c73288\n"
    },
    {
      "commit": "02e25119b15a6f619f17db99f5d05124a5807ff3",
      "tree": "7be4cbbf28033e5ee0621565b410fe5d8170a8fb",
      "parents": [
        "7d70a7932f0ba09eb01a93caab060aef1403d4e6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 14 16:14:24 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 16 13:15:37 2013 -0700"
      },
      "message": "Fix up TODO: c++0x, update cpplint.\n\nNeeded to update cpplint to handle const auto.\n\nFixed a few cpplint errors that were being missed before.\n\nReplaced most of the TODO c++0x with ranged based loops. Loops which\ndo not have a descriptive container name have a concrete type instead\nof auto.\n\nChange-Id: Id7cc0f27030f56057c544e94277300b3f298c9c5\n"
    },
    {
      "commit": "2e250c826b3c405d675017efe79e5db3651c9ee6",
      "tree": "f97684690083e2e54c1a64376e2565ff87563851",
      "parents": [
        "6e6819f7b8b4820ae2b1003a516fe9aa60fa478e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 14 18:08:52 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 14 18:09:11 2013 -0700"
      },
      "message": "Revert \"Always enable lock level checks.\"\n\nThis reverts commit ccf124800fe025be3ca05c28a60514909ca66a11.\n"
    },
    {
      "commit": "75a43f10f55e2aa550de51e969cc1e60d583b632",
      "tree": "32667690ae49d1168d8310692af915e497a6a392",
      "parents": [
        "5e3572709b5a5d59957f835db4f73760ecef08da"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Tue Aug 13 17:22:14 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Tue Aug 13 19:13:59 2013 -0700"
      },
      "message": "Clean up logcat spam from compiler and verifier\n\nMoved to VLOG(...), adding verifer tag for VLOG.\n\nChange-Id: Ia9ac8aeaf5aa1f4881e384003e82a66e560c5692\n"
    },
    {
      "commit": "9b3c3cdb62f7142384e6bf2c0cb6e3a76b16f0e3",
      "tree": "ee468053902f5d58bd0037000bc7031ea77175b2",
      "parents": [
        "7b67bee4f6ca4e634f35f63d1e08e1b05f138e01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 12 17:41:54 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 13 14:21:12 2013 -0700"
      },
      "message": "C++11 support for ART.\n\nWe can now use auto, ranged based loops, etc..\nThis compiles, the phone boots, and the tests pass.\n\nDepends on:\nhttps://googleplex-android-review.googlesource.com/#/c/342487/\n\nChange-Id: I8ba8ed47d2118e4711668c9c8f973a67beb261b2\n"
    },
    {
      "commit": "7b67bee4f6ca4e634f35f63d1e08e1b05f138e01",
      "tree": "8135032a8ecd634a7cb8e921b9416a9f63c279a1",
      "parents": [
        "0a564f3ef661a98b46c0a36472b48a52a5c735cc",
        "b3733086ab415088b97fac20b3eea24433a7d2c5"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 13 21:01:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 21:01:23 2013 +0000"
      },
      "message": "Merge \"Add a systrace support for lock contention logging.\" into dalvik-dev"
    },
    {
      "commit": "b3733086ab415088b97fac20b3eea24433a7d2c5",
      "tree": "ad853d385e5c113e5d6248d0f7d198d7d9136865",
      "parents": [
        "4baa8083ae0820f71cf0f03b94fd7f8d3b9bfa46"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Aug 12 17:28:49 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 13 13:53:12 2013 -0700"
      },
      "message": "Add a systrace support for lock contention logging.\n\n- Now several ART executables like oatdump need to link with libcutils\n  as the mutex code is shared among them.\n- The blocking thread ID and lock owner thread ID are passed to\n  ScopedContentionRecorder in the correct order.\n\nBug: 9986464\nChange-Id: Id766de23fbc4af1d8ba2de051595e365b04f5ae7\n"
    },
    {
      "commit": "67f99418f648c3a95256ed3dcd8e8b64eef0b372",
      "tree": "1ff1f195dd1aaf16b52c8e996ebb690bd2de0541",
      "parents": [
        "155ecba1c9b56ce1b468135e6a591a3fe9258c52"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Mon Aug 12 14:19:48 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Tue Aug 13 11:18:03 2013 -0700"
      },
      "message": "Yet more timing logger cleanup\n\nSome cleanup of timing logger placement, additional systrace placement for\nthreaded compilation work, tweaking/hiding of some type names per previous\nreview comments.\n\nChange-Id: Ic7db2e02747282ac7f474b9a060df9803bfdfa5e\n"
    },
    {
      "commit": "4baa8083ae0820f71cf0f03b94fd7f8d3b9bfa46",
      "tree": "7704de003922aebcdfd80258f0c04613f7a8199a",
      "parents": [
        "36f179f20e04923f1cbfd9982035c4f356f96db7",
        "4654322261c8e4d799acdea60a7e227f33c5c2db"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Mon Aug 12 18:59:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 18:59:49 2013 +0000"
      },
      "message": "Merge \"Timing logger clean-up\" into dalvik-dev"
    },
    {
      "commit": "36f179f20e04923f1cbfd9982035c4f356f96db7",
      "tree": "06bd6f3e5925d3b8657d083c3671d7964e23b271",
      "parents": [
        "ce58de2b58af4dafe4c3ee7eb52de3235cf57199",
        "1afde13b36cc1d67528104c2b1395495f669cd3f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Aug 12 17:52:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 17:52:20 2013 +0000"
      },
      "message": "Merge \"Polish the lock contention logging.\" into dalvik-dev"
    },
    {
      "commit": "4654322261c8e4d799acdea60a7e227f33c5c2db",
      "tree": "79f0e43805127345cf7c34dffed85a8487016b4d",
      "parents": [
        "6fb34134fdb4eb040d613248cf9b752f2fa845b5"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Mon Aug 12 09:28:42 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Mon Aug 12 09:28:42 2013 -0700"
      },
      "message": "Timing logger clean-up\n\nCatching some missing regions in GC, renamed unpause, relacing start/endsplits with scopedsplit.\nMore to come in further CLs.\n\nChange-Id: I809e0c3af8f8432b22c6205aade5d0dd05ac1b38\n"
    },
    {
      "commit": "1809a72a66d245ae598582d658b93a24ac3bf01e",
      "tree": "f864ff869185b2873637ca70584c66fd6a1e899d",
      "parents": [
        "a9a50926963b5093fb851ed966d201f3e95f72d3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 09 22:05:32 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 09 22:23:50 2013 -0700"
      },
      "message": "Uleb128 compression of vmap and mapping table.\n\nBug 9437697.\n\nChange-Id: I30bcb97d12cd8b46d3b2cdcbdd358f08fbb9947a\n"
    },
    {
      "commit": "4446ab9e70dde779d97f451c4904f6b8770232bd",
      "tree": "a19ddb0ffa054c6dcaf635afb228730506232d8e",
      "parents": [
        "cc386f94631dd1d60b0b0b2d4e1e243dda363f32"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Aug 09 21:17:25 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Aug 09 21:17:25 2013 -0700"
      },
      "message": "Systrace fixups and refactoring for TimingLogger\n\nFixed systrace bounds for timing logger in GC. Refactored CumulativeLogger a bit to\nallow for multiple identical entries. Added ScopedSplit, now composes with explicit\nstart/end/new splits. Adds some unit tests.\nBug: 10036801\n\nChange-Id: If0afb88b48ec3a1e19462ed354babb274a9517a7\n"
    },
    {
      "commit": "1afde13b36cc1d67528104c2b1395495f669cd3f",
      "tree": "5bcf953cb76033d812f06c096908344e8b6e9cd9",
      "parents": [
        "c9f9444a0d58f395fee5ddd9f55ff32f92cb7b57"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 06 17:09:30 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 09 12:45:36 2013 -0700"
      },
      "message": "Polish the lock contention logging.\n\n- Make the code compilable.\n- Surround the code with kLogLockContentions instead of #ifdef CONTENTION_LOGGING.\n- Dump contended locks before never-contended locks for better log readability.\n- Change the wait time unit from ms to us for better precision.\n\nBug: 9986464\nChange-Id: I121c6ccf4424d3e0339b0dcd25e18976b41fe4f3\n"
    },
    {
      "commit": "b0f871965d588cce066785728fb105248b38bb4a",
      "tree": "777eb2adbcfc35858135756d893cda86b333b9f4",
      "parents": [
        "597e46bf300244a45d1e214c618e89250b39912b"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu Aug 08 10:43:47 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu Aug 08 10:53:50 2013 -0700"
      },
      "message": "Removed unused friend classes for tests.\n\nChange-Id: I7f08b0cd4abbbc82f329a8bec0d0994327b6dba9\n"
    },
    {
      "commit": "f91bdf9c194381a3d346bd6420afcabd863f134c",
      "tree": "dbeb71270c1ce422fb880b26d8fe741e3efc08e4",
      "parents": [
        "3839f7a4d482049cfb8d5a0a9e955e7ede27e1d3",
        "e0a53e99e2a01f8668d6616c3cec7e2f5a711286"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 07 23:30:01 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 07 23:30:01 2013 -0700"
      },
      "message": "am e0a53e99: Add low memory mode option to ART.\n\n* commit \u0027e0a53e99e2a01f8668d6616c3cec7e2f5a711286\u0027:\n  Add low memory mode option to ART.\n"
    },
    {
      "commit": "e7711c5731bb78f2cbc1938b706da79d504e89f4",
      "tree": "06efbd2e5a3e2273720041821e92b2a3e401a3ce",
      "parents": [
        "beb4148cf4660e05259f915910ae057beabaa829",
        "916041f1ea33f5cb9de869d28dcdfaa390095c32"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Aug 07 07:14:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 07:14:52 2013 +0000"
      },
      "message": "Merge \"Fix logging memory leak.\" into dalvik-dev"
    },
    {
      "commit": "916041f1ea33f5cb9de869d28dcdfaa390095c32",
      "tree": "5e5a57627c634bfc9b79d06fbf9d67c29afa23ee",
      "parents": [
        "01079b5a0f61a62fa15abf66dabdc92a4ed7b5af"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 05 16:17:42 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 06 09:57:19 2013 +0200"
      },
      "message": "Fix logging memory leak.\n\nUse a UniquePtr to ensure the LogMessage::data_ member is deleted.\n\nChange-Id: Ifbf5e38307c72908579a7adbe1660f99da0e558e\n"
    },
    {
      "commit": "e0a53e99e2a01f8668d6616c3cec7e2f5a711286",
      "tree": "d672967f101a31e1dbf739a2e13f0725625e2ca2",
      "parents": [
        "f929b1f270a880e1f98c7a3913a5a5468a2a2368"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 05 10:17:40 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 05 14:53:05 2013 -0700"
      },
      "message": "Add low memory mode option to ART.\n\nUseful so that we match the option I added here:\nhttps://googleplex-android-review.googlesource.com/#/c/328940/\n\nIn ART low memory mode reduces the maximum number of histogram\nbuckets. We also trim no matter the utilization.\n\nChange-Id: I655ba63312c0a6574569cdd5171ca81ea338c2aa\n"
    },
    {
      "commit": "702a85b33c57da99e83698129a289687cdb0be1f",
      "tree": "11dfed514bb83d9cef4f7bd8268bae85a89b1404",
      "parents": [
        "99b1c14fc9f517f4882a596958ad2a0977d92daa"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 05 16:37:51 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 05 16:37:51 2013 +0200"
      },
      "message": "Fix typo in mutex.h file.\n\nChange-Id: I11db56161025285022ea1137fb7749751d14b347\n"
    },
    {
      "commit": "e5426c9995d28bcb19391d8dbf0ad70606cf1770",
      "tree": "89e9fc0d14dc50a08ae1e18d902d008a8748c653",
      "parents": [
        "08d7d44bc33a7251ff34287422c7751c5a65683d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 13:55:42 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 18:22:41 2013 -0700"
      },
      "message": "Fix histogram memory issues.\n\nBefore we had buckets of 5 micro second size. For a 100 MS GC\nthis used at least 16 * (100 / .005) bytes of storage inside of the\nhistogram data structure. If you consider the 3 different GC types,\nand each timing logger having its own histogram its easy to see\nhow memory used was significant.\n\nWe now have an upper bound on the number of buckets (default 100).\nWhen we hit the upper bound we simply combine adjacent buckets\ntogether. This reduces the total number of buckets by a factor of\n2, while increasing the bucket size by a factor of 2. This means\nthat we may lose a slight amount of precision, but the confidence\nintervals remain nearly as useful.\n\nTotal unknown memory (occam-svelte):\nBefore: 45648 kB:\nAfter: 33304 kB\n\nThere are probably still some additional optimizations which can be\ndone as disabling histograms altogether reduces the memory used by\nanother ~2mB.\n\nA bit of other cleanup in image_space.cc and dlmalloc_space.cc.\n\nBug: 9967927\n\nChange-Id: I87bb6fe4a3e0e790f104abf3cf07f67677cd7ab3\n"
    },
    {
      "commit": "0f055d11096cb02563e9c040cd03c791fd8f69a3",
      "tree": "8c7e730f17174ab4e11786fde1c2a05c7039d507",
      "parents": [
        "93c3396f8b33539489763ebdfafcedb4127009d9",
        "7934ac288acfb2552bb0b06ec1f61e5820d924a4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 12:46:02 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 12:47:51 2013 -0700"
      },
      "message": "resolved conflicts for merge of 7934ac28 to dalvik-dev\n\nChange-Id: I8798a6f154463d3f92f6aca62f14130aec82d273\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": "fd840e7dc6c187bf7960ff30c574fc3e5c5bf829",
      "tree": "b3c8a59f8a189f61d31206419163aef54ea6f11d",
      "parents": [
        "5e04059c39bea24ce9ccb1c955b6d7cc3648d7e8",
        "0de7985b29257bb60be511db774a4f0119a81f20"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 00:04:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 26 00:04:28 2013 -0700"
      },
      "message": "am 0de7985b: Consistently handle EINTR on FUTEX_WAIT\n\n* commit \u00270de7985b29257bb60be511db774a4f0119a81f20\u0027:\n  Consistently handle EINTR on FUTEX_WAIT\n"
    },
    {
      "commit": "0de7985b29257bb60be511db774a4f0119a81f20",
      "tree": "9b5e5f96f9e9e3801118093d97814e0edd78ba63",
      "parents": [
        "58b42b986742565cccfde4366495ad23d0ba57d1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 25 22:29:58 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 00:00:52 2013 -0700"
      },
      "message": "Consistently handle EINTR on FUTEX_WAIT\n\nChange-Id: I848f33b51f7087232275a125d7ae414909233437\n"
    },
    {
      "commit": "6f28d91aab952e3244fbb4e707fa38f85538f374",
      "tree": "4ad68f49a154598599bc80d4596b7ee64e5923cc",
      "parents": [
        "41a41fdfc5d38f1b389d5e6cf1a945c96170d3ed"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Wed Jul 24 15:02:53 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Jul 25 16:20:22 2013 -0700"
      },
      "message": "Add systrace support to NewTimingLogger, migrate compiler timing logging to NewTimingLogger\n\nRpleaced old TimingLogger by NewTimingLogger, renamed NewTimingLogger to TimingLogger, added systrace support to TimingLogger.\nTests passing, phone booting, systrace working.\n\nChange-Id: I2aeffb8bcb7f0fd979d8a2a3a8bcfbaa02413679\n"
    },
    {
      "commit": "23d5cffcb8e32aaa6ce0895ade28849f72d90463",
      "tree": "b577090aad0026510d104562be827dc155349d2e",
      "parents": [
        "e5e4cd8e5be53b7942a436fddd9579415432585f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 10 13:13:32 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 24 18:19:18 2013 -0700"
      },
      "message": "Revert \"Always enable lock level checks.\" DO NOT MERGE\n\nThis reverts commit ccf124800fe025be3ca05c28a60514909ca66a11.\n\n(cherry picked from commit 27c590edf6c24107b6473e84e526c432bd081f6e)\n\nChange-Id: Id3f58a0e92bb7719d6099c7b288b8a33c2456c40\n"
    },
    {
      "commit": "be45988e2ea837e73fe96f08a0a8be4112786877",
      "tree": "c59c80ab2957f48f23ce96439685c87a000fba8f",
      "parents": [
        "d35311bcf4da508aefda65e6328cd18b878cb094",
        "6eb5288264d68276085855bd041fa74fbca6827c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 11:24:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 19 11:24:52 2013 -0700"
      },
      "message": "am 6eb52882: Conditionally define non-Android pthread structures\n\n* commit \u00276eb5288264d68276085855bd041fa74fbca6827c\u0027:\n  Conditionally define non-Android pthread structures\n"
    },
    {
      "commit": "9e7723b143b1d9e5581d84a814f52691d29745c8",
      "tree": "3f5982ad4274eef3f1ac9b8a315863dae80deeba",
      "parents": [
        "c06d623988436a0dcfab7643cc971a88f00f31ed",
        "fb6996fe2b1bb28526751650441d7ac29dcdb4e6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 11:24:50 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 19 11:24:50 2013 -0700"
      },
      "message": "am fb6996fe: Fixing cpplint runtime/arrays, runtime/int, runtime/virtual issues\n\n* commit \u0027fb6996fe2b1bb28526751650441d7ac29dcdb4e6\u0027:\n  Fixing cpplint runtime/arrays, runtime/int, runtime/virtual issues\n"
    },
    {
      "commit": "c06d623988436a0dcfab7643cc971a88f00f31ed",
      "tree": "71439a57d484686c3a389421314fc443aad24b20",
      "parents": [
        "ebd66389dacec3118232fbd426c70dbed573cff1",
        "3e79aadc447dcdb9e52368baced9405667e68e6a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 11:24:50 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 19 11:24:50 2013 -0700"
      },
      "message": "am 3e79aadc: Fixing cpplint readability/constructors issues\n\n* commit \u00273e79aadc447dcdb9e52368baced9405667e68e6a\u0027:\n  Fixing cpplint readability/constructors issues\n"
    },
    {
      "commit": "ac43ae545ffca66aac813ed3e6ab54e3559b5e4e",
      "tree": "39fa904ac9ef3086d0b68d39c171e4927eb29070",
      "parents": [
        "f1694e19322ba9a147b25347fe003482a5d4930d",
        "2d88862f0752a7a0e65145b088f49dabd49d4284"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 11:24:48 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 19 11:24:48 2013 -0700"
      },
      "message": "am 2d88862f: Fixing cpplint readability/casting issues\n\n* commit \u00272d88862f0752a7a0e65145b088f49dabd49d4284\u0027:\n  Fixing cpplint readability/casting issues\n"
    },
    {
      "commit": "58d8b956e7d83bb1b219405be87e135c89b9cdb2",
      "tree": "2829f4ab7842a1c17c858bec7a10515a3922a048",
      "parents": [
        "5775391897aa290d96ad903ddbe00f66e7a6a4f8",
        "02c8cc6d1312a2b55533f02f6369dc7c94672f90"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 11:24:47 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 19 11:24:47 2013 -0700"
      },
      "message": "am 02c8cc6d: Fixing cpplint whitespace/blank_line, whitespace/end_of_line, whitespace/labels, whitespace/semicolon issues\n\n* commit \u002702c8cc6d1312a2b55533f02f6369dc7c94672f90\u0027:\n  Fixing cpplint whitespace/blank_line, whitespace/end_of_line, whitespace/labels, whitespace/semicolon issues\n"
    },
    {
      "commit": "6eb5288264d68276085855bd041fa74fbca6827c",
      "tree": "8ac3d0a3667adaa260d70a14a4935bd22b1e7f97",
      "parents": [
        "f52935278fca8c7aa220543eef4544e3d1105d91"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 00:31:07 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 00:31:07 2013 -0700"
      },
      "message": "Conditionally define non-Android pthread structures\n\nChange-Id: I2258b521db20dcc6940cb5540ca24ea5bbaf006f\n"
    },
    {
      "commit": "fb6996fe2b1bb28526751650441d7ac29dcdb4e6",
      "tree": "aba94b367c89719413d4be8fa7fd445ce3bee743",
      "parents": [
        "3e79aadc447dcdb9e52368baced9405667e68e6a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 18:21:14 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 21:55:45 2013 -0700"
      },
      "message": "Fixing cpplint runtime/arrays, runtime/int, runtime/virtual issues\n\nChange-Id: Ia2ff94d2fb69465df26aaf83df82614a483b26e0\n"
    },
    {
      "commit": "3e79aadc447dcdb9e52368baced9405667e68e6a",
      "tree": "2fc63e66a72dea93364aab47bbabc274730a0a64",
      "parents": [
        "4274889d48ef82369bf2c1ca70d84689b4f9e93a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 18:12:42 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 18:14:36 2013 -0700"
      },
      "message": "Fixing cpplint readability/constructors issues\n\nChange-Id: Idea2685007de2051f2be51a84d8956a142804402\n"
    },
    {
      "commit": "2d88862f0752a7a0e65145b088f49dabd49d4284",
      "tree": "3fac6bbd9a0ff3836f361e46579151c8a93420b6",
      "parents": [
        "751d4ed43e8118f145edf18db4d987daf7dabbae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 17:02:00 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 17:02:52 2013 -0700"
      },
      "message": "Fixing cpplint readability/casting issues\n\nChange-Id: I6821da0e23737995a9b884a04e9b63fac640cd05\n"
    }
  ],
  "next": "02c8cc6d1312a2b55533f02f6369dc7c94672f90"
}
