2121    _program_json_to_flatbuffer ,
2222)
2323
24+ from  executorch .exir ._serialize .padding  import  aligned_size , pad_to , padding_required 
25+ 
2426from  executorch .exir .schema  import  (
2527    BackendDelegateDataReference ,
2628    BackendDelegateInlineData ,
@@ -50,19 +52,6 @@ def _json_to_program(program_json: bytes) -> Program:
5052    return  _json_to_dataclass (json .loads (program_json ), cls = Program )
5153
5254
53- def  _padding_required (offset : int , alignment : int ) ->  int :
54-     """Returns the padding required to align `offset` to `alignment`.""" 
55-     remainder : int  =  offset  %  alignment 
56-     if  remainder  !=  0 :
57-         return  alignment  -  remainder 
58-     return  0 
59- 
60- 
61- def  _aligned_size (input_size : int , alignment : int ) ->  int :
62-     """Returns input_size padded up to the next whole multiple of alignment.""" 
63-     return  input_size  +  _padding_required (input_size , alignment )
64- 
65- 
6655def  _insert_flatbuffer_header (
6756    flatbuffer_data : bytes , magic_regex : str , header_data : bytes 
6857) ->  bytes :
@@ -211,25 +200,6 @@ def to_bytes(self) -> bytes:
211200        return  data 
212201
213202
214- def  _pad_to (data : bytes , length : int ) ->  bytes :
215-     """Returns the input followed by enough zero bytes to become the requested length. 
216- 
217-     Args: 
218-         data: The data to pad. 
219-         length: The length of the returned data. 
220-     Returns: 
221-         The padded data. 
222-     Raises: 
223-         ValueError: If the requested length is less than the input length. 
224-     """ 
225-     if  length  <  len (data ):
226-         raise  ValueError (f"Data length { len (data )} { length }  )
227-     if  length  >  len (data ):
228-         data  =  data  +  b"\x00 "  *  (length  -  len (data ))
229-     assert  len (data ) ==  length 
230-     return  data 
231- 
232- 
233203def  _get_extended_header (program_data : bytes ) ->  Optional [_ExtendedHeader ]:
234204    """Returns the extended header of the program data, if present and valid.""" 
235205    try :
@@ -330,7 +300,7 @@ def _extract_constant_segment(
330300        constant_segment_data .append (buffer .storage )
331301        buffer_length  =  len (buffer .storage )
332302        pad_length  =  (
333-             _padding_required (buffer_length , tensor_alignment )
303+             padding_required (buffer_length , tensor_alignment )
334304            if  tensor_alignment  is  not None 
335305            else  0 
336306        )
@@ -432,11 +402,11 @@ def serialize_pte_binary(
432402        )
433403        program .segments .append (
434404            DataSegment (
435-                 offset = _aligned_size (prev_end , segment_alignment ), size = len (data )
405+                 offset = aligned_size (prev_end , segment_alignment ), size = len (data )
436406            )
437407        )
438408        # Add to aggregate segments cord with padding. 
439-         padding_length  =  _padding_required (len (segments_data ), segment_alignment )
409+         padding_length  =  padding_required (len (segments_data ), segment_alignment )
440410        if  padding_length  >  0 :
441411            segments_data .append (b"\x00 "  *  padding_length )
442412        segments_data .append (data )
@@ -454,15 +424,15 @@ def serialize_pte_binary(
454424
455425    # Size of the header to insert. Its size is padded to the largest 
456426    # force_align value present in the schema. 
457-     padded_header_length : int  =  _aligned_size (
427+     padded_header_length : int  =  aligned_size (
458428        input_size = _ExtendedHeader .EXPECTED_LENGTH ,
459429        alignment = result .max_alignment ,
460430    )
461431    # Size of the program with the header inserted. 
462432    program_size : int  =  padded_header_length  +  len (result .data )
463433    # Offset to the first segment, or zero if there are no segments. 
464434    segment_base_offset : int  =  (
465-         _aligned_size (input_size = program_size , alignment = segment_alignment )
435+         aligned_size (input_size = program_size , alignment = segment_alignment )
466436        if  len (segments_data ) >  0 
467437        else  0 
468438    )
@@ -471,7 +441,7 @@ def serialize_pte_binary(
471441    header_data : bytes  =  _ExtendedHeader (
472442        program_size = program_size , segment_base_offset = segment_base_offset 
473443    ).to_bytes ()
474-     header_data  =  _pad_to (header_data , padded_header_length )
444+     header_data  =  pad_to (header_data , padded_header_length )
475445
476446    # Insert the header into the flatbuffer data. 
477447    program_data : bytes  =  _insert_flatbuffer_header (
@@ -496,7 +466,7 @@ def serialize_pte_binary(
496466    # - segments data (optional); aligned to segment_alignment. 
497467    pte_data  =  Cord (program_data )
498468    if  len (segments_data ) >  0 :
499-         padding_length  =  _padding_required (len (pte_data ), segment_alignment )
469+         padding_length  =  padding_required (len (pte_data ), segment_alignment )
500470        pte_data .append (b"\x00 "  *  padding_length )
501471        # The first segment after program data should start at the segment base offset. 
502472        assert  (
0 commit comments