Skip to content

Commit ec1a5df

Browse files
Olivia-liufacebook-github-bot
authored andcommitted
ETRecord changes for delegate (#352)
Summary: as titled Reviewed By: tarun292 Differential Revision: D49212137
1 parent 1200d59 commit ec1a5df

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

sdk/etrecord/TARGETS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ python_library(
88
],
99
deps = [
1010
"//executorch/exir:lib",
11+
"//executorch/exir/emit:emit",
1112
"//executorch/exir/serde:serialize",
1213
],
1314
)

sdk/etrecord/_etrecord.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
MultiMethodExecutorchProgram,
1818
MultiMethodExirExportedProgram,
1919
)
20+
from executorch.exir.emit._emitter import _DelegateDebugIdentifierMap
2021
from executorch.exir.serde.serialize import deserialize, serialize
2122

2223

@@ -25,13 +26,17 @@ class ETRecordReservedFileNames(str, Enum):
2526
PROGRAM_BUFFER = "program_buffer"
2627
ET_DIALECT_GRAPH_MODULE = "et_dialect_graph_module"
2728
DEBUG_HANDLE_MAP_NAME = "debug_handle_map"
29+
DELEGATE_MAP_NAME = "delegate_map"
2830

2931

3032
@dataclass
3133
class ETRecord:
3234
graph_map: Optional[Dict[str, ExportedProgram]] = None
3335
program_buffer: Optional[bytes] = None
3436
_debug_handle_map: Optional[Dict[int, Union[int, List[int]]]] = None
37+
_delegate_map: Optional[
38+
Dict[str, Dict[int, Dict[str, Union[str, _DelegateDebugIdentifierMap]]]]
39+
] = None
3540

3641

3742
def _handle_exported_program(
@@ -161,6 +166,11 @@ def generate_etrecord(
161166
json.dumps(program.debug_handle_map),
162167
)
163168

169+
etrecord_zip.writestr(
170+
ETRecordReservedFileNames.DELEGATE_MAP_NAME,
171+
json.dumps(program.delegate_map),
172+
)
173+
164174

165175
def parse_etrecord(etrecord_path: str) -> ETRecord:
166176
"""
@@ -190,6 +200,7 @@ def parse_etrecord(etrecord_path: str) -> ETRecord:
190200

191201
graph_map: Dict[str, ExportedProgram] = {}
192202
debug_handle_map = None
203+
delegate_map = None
193204
program_buffer = None
194205

195206
serialized_exported_program_files = set()
@@ -199,6 +210,10 @@ def parse_etrecord(etrecord_path: str) -> ETRecord:
199210
debug_handle_map = json.loads(
200211
etrecord_zip.read(ETRecordReservedFileNames.DEBUG_HANDLE_MAP_NAME)
201212
)
213+
elif entry == ETRecordReservedFileNames.DELEGATE_MAP_NAME:
214+
delegate_map = json.loads(
215+
etrecord_zip.read(ETRecordReservedFileNames.DELEGATE_MAP_NAME)
216+
)
202217
elif entry == ETRecordReservedFileNames.PROGRAM_BUFFER:
203218
program_buffer = etrecord_zip.read(ETRecordReservedFileNames.PROGRAM_BUFFER)
204219
elif entry == ETRecordReservedFileNames.ETRECORD_IDENTIFIER:
@@ -223,4 +238,5 @@ def parse_etrecord(etrecord_path: str) -> ETRecord:
223238
graph_map=graph_map,
224239
program_buffer=program_buffer,
225240
_debug_handle_map=debug_handle_map,
241+
_delegate_map=delegate_map,
226242
)

0 commit comments

Comments
 (0)