)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "413e89f277ec6ba1bdf2040f5b5611f29a27a447",
      "tree": "41fb703df7e0f208bbfa0d94919efae9630e7d1c",
      "parents": [
        "79b4f38dd35b83206e8166aaafb94bd75c3318b3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 21 23:53:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 24 14:43:30 2013 -0700"
      },
      "message": "Refactor ArenaBitVector to create more general BitVector\n\nChange-Id: Ib26f2884de9ce7d620048bdf5ed6dec639622e41\n"
    }
  ]
}
