)]}'
{
  "commit": "97004589756b0022bfdbb127c4ae0bc275f07b4b",
  "tree": "dc2804eeb69f3b85d1ab0ad057598a8c89699f1d",
  "parents": [
    "f4ea96ff2cc00b5c73a35da34c04c118f3ebc435"
  ],
  "author": {
    "name": "Alexander Markov",
    "email": "alexmarkov@google.com",
    "time": "Thu Aug 18 16:53:24 2022 +0000"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Aug 18 16:53:24 2022 +0000"
  },
  "message": "[vm/compiler] Initial implementation of IL binary serialization\n\nThis change adds binary serialization/deserialization of flow graphs.\nIt supports all IL instructions and certain objects which can be\nreferenced from IL instructions. IL binary serialization is a useful\nmachanism which would allow us to split compilation into multiple parts\nin order to parallelize AOT compilation.\n\nThe program structure (libraries/classes/functions/fields) is not\nserialized. It is assumed that reader and writer use the same\nprogram structure.\n\nCaveats:\n* FFI callbacks are not supported yet.\n* Closure functions are not re-created when reading flow graph.\n* Flow graph should be in SSA form (unoptimized flow graphs are not\n  supported).\n* JIT mode is not supported (serializer currently assumes lazy\n  linking of native methods and empty ICData).\n\nIn order to test IL serialization, --test_il_serialization VM option is\nadded to serialize and deserialize flow graph before generating code.\n\nTEST\u003dvm/dart/splay_test now runs with --test_il_serialization.\n\nTEST\u003dManual run of vm-kernel-precomp-linux-debug-x64-try with\n--test_il_serialization enabled (only ffi tests failed).\n\nIssue: https://github.com/dart-lang/sdk/issues/43299\nChange-Id: I7bbfd9e3a301e00c9cfbffa06b8f1f6c78a78470\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/254941\nReviewed-by: Ryan Macnak \u003crmacnak@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef51eded391fbce903999e9fc780b25560e45179",
      "old_mode": 33188,
      "old_path": "runtime/tests/vm/dart/splay_test.dart",
      "new_id": "25b7d988ff03d54267ccb87949bc634069aba165",
      "new_mode": 33188,
      "new_path": "runtime/tests/vm/dart/splay_test.dart"
    },
    {
      "type": "modify",
      "old_id": "6cd3050b5920b1a1dae275652134ad09d120ff5f",
      "old_mode": 33188,
      "old_path": "runtime/tests/vm/dart_2/splay_test.dart",
      "new_id": "d6a349f2e9d9cc456bcc73ac11c51ec245e5be5f",
      "new_mode": 33188,
      "new_path": "runtime/tests/vm/dart_2/splay_test.dart"
    },
    {
      "type": "modify",
      "old_id": "06119e37779a807b22dbc5cb7f3288c253098ea6",
      "old_mode": 33188,
      "old_path": "runtime/vm/bitmap.cc",
      "new_id": "a79912af38a8358e0cccb688238f78861a9998bb",
      "new_mode": 33188,
      "new_path": "runtime/vm/bitmap.cc"
    },
    {
      "type": "modify",
      "old_id": "74c4c5b5c44279125990200a229a1307709baa08",
      "old_mode": 33188,
      "old_path": "runtime/vm/bitmap.h",
      "new_id": "2c18ba587ce7052e8b5eeae8d00dc741a402ef0f",
      "new_mode": 33188,
      "new_path": "runtime/vm/bitmap.h"
    },
    {
      "type": "modify",
      "old_id": "47ced6ff0318faa7328e1ea826e2fcfbc130b640",
      "old_mode": 33188,
      "old_path": "runtime/vm/code_descriptors.h",
      "new_id": "6ca2430271644fc7856493cfd9e923eff15417cf",
      "new_mode": 33188,
      "new_path": "runtime/vm/code_descriptors.h"
    },
    {
      "type": "modify",
      "old_id": "bb5faacd4ac63396519cf01490b2ffb66c63fb67",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/aot/dispatch_table_generator.cc",
      "new_id": "1245c3883d3a472ad53d24498cdc34b837f20aca",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/aot/dispatch_table_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "e916a3cbbe01365f7ba28e9dea1a2b0428312476",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/aot/dispatch_table_generator.h",
      "new_id": "770d880bd7b5e5aa7d33431b7e673fa7e43e0778",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/aot/dispatch_table_generator.h"
    },
    {
      "type": "modify",
      "old_id": "1eeb89caa1ef6be078f21f031ab4aa89dec770d1",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/compile_type.h",
      "new_id": "bc9c6e5ee6eaea8ac6245de017200a5064b4c91d",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/compile_type.h"
    },
    {
      "type": "modify",
      "old_id": "fbefe32910b7482f1d9a1b198f2f03225acb7c0b",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/flow_graph.cc",
      "new_id": "2459014b65d30124f8380e2fd009afad80d7f37a",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/flow_graph.cc"
    },
    {
      "type": "modify",
      "old_id": "354e15f0013d0d17c4e64b6f5344398dcb0a0cfc",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/flow_graph.h",
      "new_id": "354e2fafae585bb3c1d43f23a4ffe7545f6c48c8",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/flow_graph.h"
    },
    {
      "type": "modify",
      "old_id": "e3f8fddfbcf1bf03c67e26d4727a959e88414304",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/flow_graph_checker.cc",
      "new_id": "6fad4a1bf32714e97ca19a00f1068edf8e060455",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/flow_graph_checker.cc"
    },
    {
      "type": "modify",
      "old_id": "0dcade71a8622cecd71cd57410f20636eb9f65b0",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/il.cc",
      "new_id": "71829920eea7198a50d4ad2efa1f9793b0f9c490",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il.cc"
    },
    {
      "type": "modify",
      "old_id": "878c3091788cb520cc6c0ab8799c6df68dffc44d",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/il.h",
      "new_id": "e8023e62884b9718be9b781e252bc0b2c28b5ed3",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6fb76fcaff6b788093e75d77f9a34a25bf1ed03a",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il_serializer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07948c2c3bd6fdb9572905fbdd57bc6387e3b0b2",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il_serializer.h"
    },
    {
      "type": "modify",
      "old_id": "aabd12a039c322434568ab5ef6f9e1c977e240d1",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/locations.h",
      "new_id": "c82215faec4d48149f3a438a089fe1680c6620e6",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/locations.h"
    },
    {
      "type": "modify",
      "old_id": "f2cf0abfed38531ab6aed58dd821009d3cca1dea",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/range_analysis.cc",
      "new_id": "902573877b19b672181e4a758f93b68f8a651d1e",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/range_analysis.cc"
    },
    {
      "type": "modify",
      "old_id": "aa1f6b906f88aff9dc497211b7b603c9b0e87840",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/range_analysis.h",
      "new_id": "dc178f6049af218430e6da0ab4cd1d6a39e5fd2a",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/range_analysis.h"
    },
    {
      "type": "modify",
      "old_id": "ce2d3d530909413d33ebafe49be1f9bd6af8820a",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/range_analysis_test.cc",
      "new_id": "39b4729e872bb0f03a4f0947367d7fd0a0d363c0",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/range_analysis_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c1925000f52eb776d9d82071441fe7dca943bc50",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/redundancy_elimination.cc",
      "new_id": "454cae94950d821a6b9de62bdd4b2c642d5b2f12",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/redundancy_elimination.cc"
    },
    {
      "type": "modify",
      "old_id": "6554f8b02a63916a1f7e3562a7b2091bd59303e7",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/slot.cc",
      "new_id": "46acba69ed22fbcc0af92550fc7f36c18c0f5375",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/slot.cc"
    },
    {
      "type": "modify",
      "old_id": "eb873550aeadc93034c6b1494b5287719206124c",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/slot.h",
      "new_id": "90838c95638b55892fcd1ec2e295a7c82afea8bb",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/slot.h"
    },
    {
      "type": "modify",
      "old_id": "f6a4dd3ee0740409f05082f1906cd7ecfc6ccd93",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/compiler_pass.cc",
      "new_id": "6486fca998aaf6f88bb199f405b0d5c12a313aac",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/compiler_pass.cc"
    },
    {
      "type": "modify",
      "old_id": "ace991412d00961cf434d05ec59b10746a054294",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/compiler_sources.gni",
      "new_id": "ed545d6e00ecdf2df20199ab788b969e2ece143b",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/compiler_sources.gni"
    },
    {
      "type": "modify",
      "old_id": "be76d7500e47ce09ea4247ed44b519831090a296",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/ffi/call.cc",
      "new_id": "0cee4def0293e2954d188d636653417badfa15a7",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/ffi/call.cc"
    },
    {
      "type": "modify",
      "old_id": "aecd128ae242e0341fed313296ba146ec7d6c03b",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/ffi/call.h",
      "new_id": "11c328a309cdfde3b11dabb033c1204dcb12c852",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/ffi/call.h"
    },
    {
      "type": "modify",
      "old_id": "175e12e0dd4e62a643e7c9933c4e756e67e86a4b",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/ffi/marshaller.h",
      "new_id": "61eea689b2e2d302bfcae83c12947fd57acfe0cf",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/ffi/marshaller.h"
    },
    {
      "type": "modify",
      "old_id": "525dc4d5185bfe09b0751c485a0e722205a66163",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/stub_code_compiler.cc",
      "new_id": "a4c1c5ee106548da085395dbb71317b3f4537b23",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/stub_code_compiler.cc"
    },
    {
      "type": "modify",
      "old_id": "76817edfe4b642c54fe58810701f06a84bff7f10",
      "old_mode": 33188,
      "old_path": "runtime/vm/object.cc",
      "new_id": "0aca34ffdeab3f9be6c19d8f489443e1632b1a8d",
      "new_mode": 33188,
      "new_path": "runtime/vm/object.cc"
    },
    {
      "type": "modify",
      "old_id": "ed7f206192c85dbece7e39719e79bc023957f53d",
      "old_mode": 33188,
      "old_path": "runtime/vm/object.h",
      "new_id": "555d22cdb4ae3e5ac128813507826ce44b58aee2",
      "new_mode": 33188,
      "new_path": "runtime/vm/object.h"
    },
    {
      "type": "modify",
      "old_id": "2e7a7b4184ec2b4f049fc7403b9bc6020d6a20a6",
      "old_mode": 33188,
      "old_path": "runtime/vm/regexp_assembler_ir.cc",
      "new_id": "99440a2c1c1ecf1e5ab45960165e65d651734f12",
      "new_mode": 33188,
      "new_path": "runtime/vm/regexp_assembler_ir.cc"
    },
    {
      "type": "modify",
      "old_id": "41ac9d1f1d9930504fb30cb6a1acf331555f29a4",
      "old_mode": 33188,
      "old_path": "runtime/vm/type_testing_stubs.cc",
      "new_id": "aa79b1da8805b6f50b2993332427556d01e157b2",
      "new_mode": 33188,
      "new_path": "runtime/vm/type_testing_stubs.cc"
    }
  ]
}
