)]}'
{
  "log": [
    {
      "commit": "575d3e60c68b5cf481b615dde4a16283507b19ed",
      "tree": "4718f2747233e74268de21d804df9bfe0b7e4362",
      "parents": [
        "857acf51fbc5a931939c20e9e299c69676baf654"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 06 11:00:40 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 08 09:51:27 2017 -0800"
      },
      "message": "Clean up code info table layout\n\nPreviously:\nTable layout was computed multiple places like stack_map_stream,\nand getters. This made it difficult to add new stack map tables and\nmade the code hard to understand.\n\nThis change makes the table layout specified all inside of the code\ninfo. Updating the layout only requires changing ComputeTableOffsets.\n\nChanged the stack map inline info offset to be an index, so that it is\nnot require the inline infos are directly after the dex register table.\n\nOat file size for a large app: 94459576 -\u003e 93882040 (-0.61%)\n\nUpdated oatdump and fixed a bug that was incorrectly computing the\nregister mask bytes.\n\nBug: 34621054\n\nTest: test-art-host\n\nChange-Id: I3a7f141e09d5a18bce2bc6c9439835244a22016e\n"
    },
    {
      "commit": "a2f526f889be06f96ea59624c9dfb1223b3839f3",
      "tree": "769f517e6664de0e89abeadf07a39d5410fcee42",
      "parents": [
        "64e50021845b1ad9d8851596e8aaddf18be217c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 19 14:48:48 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 20 15:47:06 2017 -0800"
      },
      "message": "Compressed native PC for stack maps\n\nCompress native PC based on instruction alignment. This reduces the\nsize of stack maps, boot.oat is 0.4% smaller for arm64.\n\nTest: test-art-host, test-art-target, N6P booting\n\nChange-Id: I2b70eecabda88b06fa80a85688fd992070d54278\n"
    },
    {
      "commit": "09ed09866da6d8c7448ef297c148bfa577a247c2",
      "tree": "dad6a5dae6ca6131f1eba201eaa371edc6d9929d",
      "parents": [
        "e28ad4b91591c226ed404a2b01104bb99bfeb28f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 12 21:58:43 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 31 22:12:07 2016 +0100"
      },
      "message": "Pack stack map entries on bit level to save space.\n\nUse only the minimum number of bits required to store stack map data.\nFor example, if native_pc needs 5 bits and dex_pc needs 3 bits, they\nwill share the first byte of the stack map entry.\n\nThe header is changed to store bit offsets of the fields rather than\nbyte sizes. Offsets also make it easier to access later fields without\ncalculating sum of all previous sizes.\n\nAll of the header fields are byte sized or encoded as ULEB128 instead\nof the previous fixed size encoding. This shrinks it by about half.\n\nIt saves 3.6 MB from non-debuggable boot.oat (AOSP).\nIt saves 3.1 MB from debuggable boot.oat (AOSP).\n\nIt saves 2.8 MB (of 99.4 MB) from /system/framework/arm/ (GOOG).\nIt saves 1.0 MB (of 27.8 MB) from /system/framework/oat/arm/ (GOOG).\n\nField loads from stackmaps seem to get around 10% faster.\n(based on the time it takes to load all stackmap entries from boot.oat)\n\nBug: 27640410\nChange-Id: I8bf0996b4eb24300c1b0dfc6e9d99fe85d04a1b7\n"
    },
    {
      "commit": "2de1e8a52ef8d4b2e033f3404ca9cc970bb5149c",
      "tree": "f140ba578b933c58367745c5670f6575f8bbfdd7",
      "parents": [
        "9faab4dd50d2bdda12284c6b8d3837943a73b5da",
        "6a6b38fbed22688fac7e061450a8a9c64a685faf"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 18:19:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 11 18:19:12 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Allow duplicated methods in different DWARF line tables.\"\"\""
    },
    {
      "commit": "6a6b38fbed22688fac7e061450a8a9c64a685faf",
      "tree": "79c27dd0575f8d7fac2b9b0c630577701ec1c7a9",
      "parents": [
        "6030b15ce83ac2a9fb78cd9d137b6f4b441e6417"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:35:45 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 18:17:56 2016 +0000"
      },
      "message": "Revert \"Revert \"Allow duplicated methods in different DWARF line tables.\"\"\n\nThis reverts commit 8862fac4a0b97d827d2808146d2d79b8d799b998.\n\nChange-Id: I4d5629df4580b7ac08a5cb04924c56eecad3ad25\n"
    },
    {
      "commit": "9faab4dd50d2bdda12284c6b8d3837943a73b5da",
      "tree": "b028de219d3e6bc1d4fe6e71158e5c5ff61216e6",
      "parents": [
        "6030b15ce83ac2a9fb78cd9d137b6f4b441e6417",
        "252fa90d25eb3fa9c4189304d021533c9657fea7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 18:16:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 11 18:16:36 2016 +0000"
      },
      "message": "Merge \"DWARF: Compensate for compiler\u0027s off-by-one instruction.\""
    },
    {
      "commit": "09c2a6be63337ee060e2d54bd01cf18be7301d29",
      "tree": "c623c5352bc908410f03b20b772c3dad47df207c",
      "parents": [
        "fdaa583e785383cca68df63c7ef53fcaf667b8e2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 17:11:44 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 17:35:19 2016 +0000"
      },
      "message": "Add trampoline symbols to native debug info.\n\nThe debugger needs them to unwind through the trampolines and to\nunderstand what is happening in the call stack.\n\nChange-Id: Ia554058c3796788adcd7336d620a7734eb366905\n"
    },
    {
      "commit": "252fa90d25eb3fa9c4189304d021533c9657fea7",
      "tree": "3fd03332a888b8e3902dbdc1f0c9f830a55ecc8d",
      "parents": [
        "60e10c8564f47de0b7f29b26d040c591d5a396b5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:25:00 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 16:18:50 2016 +0000"
      },
      "message": "DWARF: Compensate for compiler\u0027s off-by-one instruction.\n\nThe compiler generates stackmaps with PC value which is *after*\nthe instruction rather PC of the instruction itself. This causes\ntrouble when generating native line number mapping since the\nbranch instruction itself will not be mapped, and consequently\nwe get incorrect line number in backtraces. Add code to compensate\nfor this. See the in-code comment for more details.\n\nChange-Id: I72c992e6d08a767f314290d562421b251ae60732\n"
    },
    {
      "commit": "60e10c8564f47de0b7f29b26d040c591d5a396b5",
      "tree": "49809c99b991eece44dad9ca26c89bdcf0f9d911",
      "parents": [
        "8583b44f8b5788b57be4d4738072dc6a99c49823",
        "8862fac4a0b97d827d2808146d2d79b8d799b998"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:35:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 11 14:35:33 2016 +0000"
      },
      "message": "Merge \"Revert \"Allow duplicated methods in different DWARF line tables.\"\""
    },
    {
      "commit": "8862fac4a0b97d827d2808146d2d79b8d799b998",
      "tree": "27509ec22da5d2b82443142f230525d5b4ad9aea",
      "parents": [
        "3c5462364daee17e651299f1c370f965f34baed8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:34:47 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:34:47 2016 +0000"
      },
      "message": "Revert \"Allow duplicated methods in different DWARF line tables.\"\n\nThis reverts commit 3c5462364daee17e651299f1c370f965f34baed8.\n\nChange-Id: Icc63c47cd53abeff2a470ae84715012a1ef988ac\n"
    },
    {
      "commit": "8583b44f8b5788b57be4d4738072dc6a99c49823",
      "tree": "2c3aea50b7b2c208a8d770b36cf3d392d909d50d",
      "parents": [
        "cc22d41d4de2514cc3cb4ed569764a35f15da48d",
        "3c5462364daee17e651299f1c370f965f34baed8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:28:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 11 14:28:00 2016 +0000"
      },
      "message": "Merge \"Allow duplicated methods in different DWARF line tables.\""
    },
    {
      "commit": "3c5462364daee17e651299f1c370f965f34baed8",
      "tree": "3e730b28ccd4d7d17d65777eeba6c85c6034fc96",
      "parents": [
        "ef0119a0f329906ba1e8cbd8e53ce5a759fd4f99"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 11:49:20 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:13:44 2016 +0000"
      },
      "message": "Allow duplicated methods in different DWARF line tables.\n\nThis makes the compilation units more self-contained.\nIf method is mentioned in the compilation unit, we can\nalso find its line table there. Otherwise, we would have\nto search through all of them.\n\nChange-Id: I0cdfb9006e796e41e123fc1f4fecd15312570068\n"
    },
    {
      "commit": "197160d47f34238cb5e7444fa4c2de300db8e2c6",
      "tree": "4c07b9e97e8ffaffb274d03b63701780baf0b72f",
      "parents": [
        "ef0119a0f329906ba1e8cbd8e53ce5a759fd4f99"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 07 17:33:57 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 10 10:11:31 2016 +0000"
      },
      "message": "Refactor MethodDebugInfo (input of DWARF writer).\n\nDo not pass CompiledMethod pointer through since it is only available\nduring AOT compile but not during JIT compile or at runtime. Creating\nmock CompiledMethod just pass data is proving increasingly tricky, so\ncopy the fields that we need to MethodDebugInfo instead.\n\nChange-Id: I820297b41e769fcac488c0ff2d2ea0492bb13ed8\n"
    },
    {
      "commit": "91cc06c1814bd1d0fd6635bc3d7632a2bb7b0e7c",
      "tree": "7c57374bd28d245fd0f071ec66d9aad8501a878a",
      "parents": [
        "5d8112029d0e085c5a0099257daa4c7e29c12310"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 07 16:13:58 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 15:48:02 2016 +0000"
      },
      "message": "Mark DWARF lines in non-debuggable methods as \"not a statement\".\n\nThis is a hint to the debugger that breakpoints and stepping\nmight not function as intended (since we have limited information).\n\nChange-Id: I23c4a816182cc7548fcd69fbd00112225e7b1710\n"
    },
    {
      "commit": "99b87ebbe287ddadf530b217b11a38226bca4367",
      "tree": "b676c33721afe390f7147388505b2da9d278c506",
      "parents": [
        "96bbc8fcac2d408e0afdcae933653198fb8bbe92"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 09 18:16:35 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 16 11:30:03 2016 +0000"
      },
      "message": "Change how DWARF detects end of prologue.\n\nInstead of ignoring stack map without dex register maps altogether,\nexplicitly calculate end of prologue as first stack map which has\ndex register maps. This gives us more line number mappings.\n\nChange-Id: I643cf0f9daf9762d894fbc94f5ff981ef6c0583b\n"
    },
    {
      "commit": "c5bfa97c47d656b76f297af8abcd5f7502987399",
      "tree": "84da9d0f39096d8b857760a0848c0231aff0ed6d",
      "parents": [
        "a0f2bc5b09cdaf8a8ff5cec3c40a9f18885e8796"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 15:49:10 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 12:47:07 2016 +0000"
      },
      "message": "Split elf_writer_debug.cc to several files.\n\nRefactoring only. The file has grown significantly over time,\nand it is time to split it so it can be better managed.\n\nChange-Id: Idce0231718add722292f4701df353d5baf31de5f\n"
    }
  ]
}
