)]}'
{
  "log": [
    {
      "commit": "ede7bf8a5cef965974e7c1edcf46a41fbe50a49d",
      "tree": "7f99657bd4f8591f7cf463c1a197e1a7575abab6",
      "parents": [
        "63346f57e2327894ce6c1e28e3d00342177538a6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 12:23:04 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 12:54:45 2015 +0000"
      },
      "message": "Align CodeInfo regions instead of their inner subregions.\n\nInstead of word-aligning every stack map region, as well as\nthe Dex register maps region of a CodeInfo object, just\nalign the whole CodeInfo region itself.\n\nChange-Id: Ia35d213d2bd184729aa0d048874c76f7bc6da0f6\n"
    },
    {
      "commit": "29ba1b068fc9f5a8011782c147b1f7732928aac7",
      "tree": "5b61289b1e135cce6f01e8c9cbcaa747a39f196c",
      "parents": [
        "d9a59ca8f038a0f93a4e1504e0f7f8f388848719"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 11:45:07 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 13 12:28:43 2015 +0000"
      },
      "message": "Fix the computation of the size of the stack maps region.\n\nIn art::StackMapStream::ComputeStackMapSize, compute the\nsize of a CodeInfo\u0027s stack maps region using the stack\nmask size, not the maximum element of the stack mask.\nAlso, rename this method as\nart::StackMapStream::ComputeStackMapsSize to make it clear\nit that it covers all the stack maps of the CodeInfo item,\nnot just one stack map.\n\nChange-Id: Icad21946dbca6e1ade2b82c9c2c535fdfed110a9\n"
    },
    {
      "commit": "9ac0e4d4ed1b45cf8767ef1d339afcdd205bf55a",
      "tree": "f5a53e3e10a138b4b301d60f9abc1011e945bda5",
      "parents": [
        "4054413950cbee5d304a7c29f08c21fb33d33d08"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 12 18:33:05 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 12 18:33:19 2015 +0000"
      },
      "message": "Force word alignment of Dex register maps.\n\nPlus some cosmetic changes.\n\nChange-Id: I45e805aa87c2ef8fe8907eaae726cd2188b54897\n"
    },
    {
      "commit": "a2d8ec6876325e89e5d82f5dbeca59f96ced3ec1",
      "tree": "65bf174b669ff3cd9694dc5a1124fb9f2225ade1",
      "parents": [
        "39d9fe2eb3552a002c53ed41701c6faffe3cd75a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 12 15:25:29 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 12 15:25:29 2015 +0000"
      },
      "message": "Compress the Dex register maps built by the optimizing compiler.\n\n- Replace the current list-based (fixed-size) Dex register\n  encoding in stack maps emitted by the optimizing compiler\n  with another list-based variable-size Dex register\n  encoding compressing short locations on 1 byte (3 bits for\n  the location kind, 5 bits for the value); other (large)\n  values remain encoded on 5 bytes.\n- In addition, use slot offsets instead of byte offsets to\n  encode the location of Dex registers placed in stack\n  slots at small offsets, as it enables more values to use\n  the short (1-byte wide) encoding instead of the large\n  (5-byte wide) one.\n- Rename art::DexRegisterMap::LocationKind as\n  art::DexRegisterLocation::Kind, turn it into a\n  strongly-typed enum based on a uint8_t, and extend it to\n  support new kinds (kInStackLargeOffset and\n  kConstantLargeValue).\n- Move art::DexRegisterEntry from\n  compiler/optimizing/stack_map_stream.h to\n  runtime/stack_map.h and rename it as\n  art::DexRegisterLocation.\n- Adjust art::StackMapStream,\n  art::CodeGenerator::RecordPcInfo,\n  art::CheckReferenceMapVisitor::CheckOptimizedMethod,\n  art::StackVisitor::GetVRegFromOptimizedCode, and\n  art::StackVisitor::SetVRegFromOptimizedCode.\n- Implement unaligned memory accesses in art::MemoryRegion.\n- Use them to manipulate data in Dex register maps.\n- Adjust oatdump to support the new Dex register encoding.\n- Update compiler/optimizing/stack_map_test.cc.\n\nChange-Id: Icefaa2e2b36b3c80bb1b882fe7ea2f77ba85c505\n"
    },
    {
      "commit": "442b46a087c389a91a0b51547ac9205058432364",
      "tree": "4efa4b4da919dd7b9aa18996a5316febcf1c8989",
      "parents": [
        "aa9b7c48069699e2aabedc6c0f62cb131fee0c73"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 18 16:54:21 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 19 12:13:09 2015 +0000"
      },
      "message": "Display optimizing compiler\u0027s CodeInfo objects in oatdump.\n\nA few elements are not displayed yet (stack mask, inline info) though.\n\nChange-Id: I5e51a801c580169abc5d1ef43ad581aadc110754\n"
    },
    {
      "commit": "376b2bbf7c39108223a7a01568a7b4b04d84eeac",
      "tree": "f6fdbe6180c3d330bc24aa35a7d9fa51f3eb1c55",
      "parents": [
        "b1a38e246cfbfb21100d9c9e57f33970e824f075"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 14:26:32 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 14:49:02 2014 +0000"
      },
      "message": "Ensure stack maps are 4 byte aligned.\n\nWith the recent move to gcc 4.9, we are hitting alignment\nSIGBUS on ARM. The reason is that gcc will optimize two consecutive\n32bits loads into one 64bits load, and the instruction (ldrd)\nwill fail if the data is not aligned.\n\nAlso removed the emission of mapping table when a method is optimized.\nThe information can be found in the StackMap itself.\n\nChange-Id: Icf79406c18a3f4db3c05d52fc2c0dd2e35bf0f8f\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "0279ebb3efd653e6bb255470c99d26949c7bcd95",
      "tree": "d58b29754f7b3c88616e6e4d6c19346821d244ae",
      "parents": [
        "f1f05d303988a5c071c87b760056be8358276c94"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 17:27:48 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 08:25:34 2014 -0700"
      },
      "message": "Tidy ELF builder.\n\nDon\u0027t do \"if (ptr)\". Use const. Use DISALLOW_COPY_AND_ASSIGN. Avoid public\nmember variables.\nMove ValueObject to base and use in ELF builder.\nTidy VectorOutputStream to not use non-const reference arguments.\n\nChange-Id: I2c727c3fc61769c3726de7cfb68b2d6eb4477e53\n"
    },
    {
      "commit": "3946844c34ad965515f677084b07d663d70ad1b8",
      "tree": "0d85bfba2ff69c34a2897351d1e50a1464509305",
      "parents": [
        "e2c23739c6395a83b30ece38f8a2e9e1bf7cf3ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 02 15:17:15 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 08 12:15:07 2014 +0100"
      },
      "message": "Runtime support for the new stack maps for the opt compiler.\n\nNow most of the methods supported by the compiler can be optimized,\ninstead of using the baseline.\n\nChange-Id: I80ab36a34913fa4e7dd576c7bf55af63594dc1fa\n"
    },
    {
      "commit": "8eddd2a379e1d3c76b22f40d3d4387d12ed1a8d1",
      "tree": "d265344c32c5bf37d356fcb4871f57a1250d16b6",
      "parents": [
        "daa31c58ec2fec209f8fdc383bf10dd2e2c64512"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 28 14:53:22 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 28 14:53:49 2014 -0700"
      },
      "message": "ART: Fix missing initialization in stack_map_stream.h\n\nFixes stack_map_test.\n\nChange-Id: Ibd6659b589ec595a7af21ad3d727c0ab2dceb45c\n"
    },
    {
      "commit": "99ea58cc68b51837c065f4a2a54efbf208dd76fa",
      "tree": "065c1335213b0bff5c3fb7a0dc79785f77441c9f",
      "parents": [
        "b5a214105d4c9b6c14de1649764950dd35bd620f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 02 15:08:17 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 21 12:47:27 2014 +0100"
      },
      "message": "Add a new stack map scheme that encodes compilation info per pc.\n\nEncodes stack mask, register mask, dex register values, and inlining\ninfo. The encoding is currently very straightforward: there is no\nclever encoding, nor compression.\n\nChange-Id: I5fd9ae28189a5513cd9e3c8d52c648463207643d\n"
    }
  ]
}
