)]}'
{
  "commit": "08c3bcd66dc0101720da78c1d5f49230f4521c75",
  "tree": "290fea00c6e1ab92349db3e80f10ac876e0f364f",
  "parents": [
    "2f6f8605b944b17a307425a81013b51b5a00a1d3"
  ],
  "author": {
    "name": "Jan Voung",
    "email": "jvoung@chromium.org",
    "time": "Mon Dec 01 17:55:16 2014 -0800"
  },
  "committer": {
    "name": "Jan Voung",
    "email": "jvoung@chromium.org",
    "time": "Mon Dec 01 17:55:16 2014 -0800"
  },
  "message": "Subzero: Add basic ELFObjectWriter (text section, symtab, strtab, headers).\n\nAble to write out the ELF file header w/ a text section,\na symbol table, and string table. Write text buffer\ndirectly to file after translating each CFG.\nThis means that the header is written out early w/ fake\ndata and then we seek back and write the real header\nat the very end.\n\nDoes not yet handle relocations, data, rodata, constant\npools, bss, or -ffunction-sections, more than 64K sections\nor more than 2^24 symbols.\n\nNumbers w/ current NOASSERT\u003d1 build on 176.gcc:\n\nw/out -elf-writer:\n    0.233771 (21.1%): [ 1287] emit\n    28MB .s file\n\nw/ -elf-writer:\n    0.051056 ( 5.6%): [ 1287] emit\n    2.4MB .o file\n\nBUG\u003dnone\nR\u003dstichnot@chromium.org\n\nReview URL: https://codereview.chromium.org/678533005\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d6a2dafaa796c9fe0d22d4c0062c47dbd0b08f8c",
      "old_mode": 33188,
      "old_path": "Makefile.standalone",
      "new_id": "787e13873f402fd8e52bbbd44639d430569f60f2",
      "new_mode": 33188,
      "new_path": "Makefile.standalone"
    },
    {
      "type": "modify",
      "old_id": "950a3f8ee6e9572abf6fbe4f64399264ff9d4be2",
      "old_mode": 33188,
      "old_path": "src/IceCfg.cpp",
      "new_id": "e40bd1609c0088d28d2ae4be7034c3da3b579218",
      "new_mode": 33188,
      "new_path": "src/IceCfg.cpp"
    },
    {
      "type": "modify",
      "old_id": "a1dcf68f8eefcecc3a5f77084b0c75c0b1a029b2",
      "old_mode": 33188,
      "old_path": "src/IceClFlags.h",
      "new_id": "68255fba9366c2db4a1ec60d4dec8346b1e47b24",
      "new_mode": 33188,
      "new_path": "src/IceClFlags.h"
    },
    {
      "type": "modify",
      "old_id": "a28da4b7c2a8f9cf5a233af05527fa7d95c34e7c",
      "old_mode": 33188,
      "old_path": "src/IceDefs.h",
      "new_id": "5d9dd4c97135f7485c27d1d12c06b012db1e77f3",
      "new_mode": 33188,
      "new_path": "src/IceDefs.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3a63df5c23558caa3938a94c7a3238cfbf4bd20",
      "new_mode": 33188,
      "new_path": "src/IceELFObjectWriter.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1dc9daa0dddaa4cfbee6ce4f8a19602dd3d507e5",
      "new_mode": 33188,
      "new_path": "src/IceELFObjectWriter.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1910e7710b87c529304052ae4e925e60fee75446",
      "new_mode": 33188,
      "new_path": "src/IceELFSection.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "227affe9bf6cc4dd77b7d82762e71981a766b0c8",
      "new_mode": 33188,
      "new_path": "src/IceELFSection.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce70e86f8889066fc74a9e7644e3bc12f5807f2c",
      "new_mode": 33188,
      "new_path": "src/IceELFStreamer.h"
    },
    {
      "type": "modify",
      "old_id": "8b345d47ed0a807d5d0dcd7dcbea10594d3e2b6c",
      "old_mode": 33188,
      "old_path": "src/IceGlobalContext.cpp",
      "new_id": "095f288ae88b8fb30982d477a733f9957b536c46",
      "new_mode": 33188,
      "new_path": "src/IceGlobalContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "02e216be8082a51f99db780c1b092a483b68fb82",
      "old_mode": 33188,
      "old_path": "src/IceGlobalContext.h",
      "new_id": "a08262589d64c60ecb34a0030167661d95033a87",
      "new_mode": 33188,
      "new_path": "src/IceGlobalContext.h"
    },
    {
      "type": "delete",
      "old_id": "ccfd3cf73876297b0df08b6c5e17bd86ffbb69e0",
      "old_mode": 33188,
      "old_path": "src/IceMemoryRegion.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b1069a9e3d82e432aa18c2cfe24a45dfbb5341f5",
      "old_mode": 33188,
      "old_path": "src/IceMemoryRegion.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "da1d3f0ae5d67c9d687416ea4ba43abb4b568e71",
      "old_mode": 33188,
      "old_path": "src/IceTargetLowering.h",
      "new_id": "3e2243a9f18b0d71fae3f80a464da94be6891b2a",
      "new_mode": 33188,
      "new_path": "src/IceTargetLowering.h"
    },
    {
      "type": "modify",
      "old_id": "937a15bf265691f68829972218bf4856a204de43",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8632.cpp",
      "new_id": "3fcf8a6204243b4651c0ee625df902dbd1f02aae",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8632.cpp"
    },
    {
      "type": "modify",
      "old_id": "920d4cdc9a3b032ef8ae5fbe1d1cfb5876fd6f94",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8632.h",
      "new_id": "2846ac954e9504cffe3fb4512f805032d2b2687c",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8632.h"
    },
    {
      "type": "modify",
      "old_id": "2a50a410c90a0db122a87e32ca846d51b5df8d30",
      "old_mode": 33188,
      "old_path": "src/IceTranslator.cpp",
      "new_id": "a6acfb545e57f77891f6bc0e743444981ad04870",
      "new_mode": 33188,
      "new_path": "src/IceTranslator.cpp"
    },
    {
      "type": "modify",
      "old_id": "455aa0cb4fae1ca8d00c1208df1eb3c3e0f9549b",
      "old_mode": 33188,
      "old_path": "src/IceTypes.cpp",
      "new_id": "e6dbadfc3051130999bd62d1e765f26254e986d0",
      "new_mode": 33188,
      "new_path": "src/IceTypes.cpp"
    },
    {
      "type": "modify",
      "old_id": "3d4c9b179ee19d0861fccfd2648c1498ea187181",
      "old_mode": 33188,
      "old_path": "src/IceTypes.def",
      "new_id": "0b85ad6355b3e9eeb002a93389245cb3ff6a0918",
      "new_mode": 33188,
      "new_path": "src/IceTypes.def"
    },
    {
      "type": "modify",
      "old_id": "58f0aa40380f5a80e5674a5966c9e2524f8d6196",
      "old_mode": 33188,
      "old_path": "src/IceTypes.h",
      "new_id": "662a31a48320b170cd5dc9ca890d9f0609489648",
      "new_mode": 33188,
      "new_path": "src/IceTypes.h"
    },
    {
      "type": "modify",
      "old_id": "b0bd297f057db71e178e6307261781ab9750b0d3",
      "old_mode": 33188,
      "old_path": "src/assembler.cpp",
      "new_id": "a9516e869b05a0213e96557245d9ef270f513493",
      "new_mode": 33188,
      "new_path": "src/assembler.cpp"
    },
    {
      "type": "modify",
      "old_id": "37963c4c393794c07424c44832855ecd51b19f37",
      "old_mode": 33188,
      "old_path": "src/assembler.h",
      "new_id": "dc706683ea676cc8c21445ab753c5f700c03e2b0",
      "new_mode": 33188,
      "new_path": "src/assembler.h"
    },
    {
      "type": "modify",
      "old_id": "94263e8bd94aa7cbbe83e55da6204b370ed12e12",
      "old_mode": 33188,
      "old_path": "src/assembler_ia32.cpp",
      "new_id": "30b84e8546dabd4880571ee8ef11198539604635",
      "new_mode": 33188,
      "new_path": "src/assembler_ia32.cpp"
    },
    {
      "type": "modify",
      "old_id": "a7ffc9e1ec539ec748f6ba6c3874fa95afe47f7b",
      "old_mode": 33188,
      "old_path": "src/assembler_ia32.h",
      "new_id": "d38dca78b897a3fa3ab9e6b8c9d7203cc2a33109",
      "new_mode": 33188,
      "new_path": "src/assembler_ia32.h"
    },
    {
      "type": "modify",
      "old_id": "a28b07f924c61a3b9dd45a17a72f30746014e27c",
      "old_mode": 33188,
      "old_path": "src/llvm2ice.cpp",
      "new_id": "4caa6b84b250cfd38478c5eeb90b0ae74a53d745",
      "new_mode": 33188,
      "new_path": "src/llvm2ice.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b6f700785f33f945ad3684c152da029d2e4a4be",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/elf_container.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8dbcc65137906f29a77b254172e16bbc1a037839",
      "new_mode": 33188,
      "new_path": "unittest/IceELFSectionTest.cpp"
    }
  ]
}
