• Lei Wang's avatar
    [ArgBinder] Enhance shape variable handling and assertions (#1467) · f6db2014
    Lei Wang authored
    * feat(arg_binder): enhance shape variable handling and assertions
    
    - Implemented special handling for comparing if_then_else expressions to simplify conditions involving NULL checks.
    - Added methods to set shared shape variables and finalize deferred bindings, generating cascading if_then_else expressions and runtime assertions for non-NULL buffers.
    - Updated the binding logic to defer shape variable bindings for shared variables, ensuring proper handling across multiple nullable buffers.
    
    * refactor(arg_binder): clean up shape variable handling and remove unused code
    
    - Removed deprecated methods for setting shared shape variables and finalizing deferred bindings, streamlining the argument binding process.
    - Simplified the logic for handling shape values in the `BindDLTensor` function, ensuring immediate binding for normal shape variables.
    - Enhanced clarity by eliminating unnecessary comments and code related to cascading if_then_else expressions for shared variables.
    
    * refactor(arg_binder): enhance DLTensor binding with improved shape handling
    
    - Replaced the single `BindDLTensor` method with `BindDLTensors` to support multiple buffers, improving flexibility in handling DLTensor bindings.
    - Introduced a two-pass approach for shape variable handling, allowing for better management of symbolic dimensions and null checks.
    - Updated the logic to assert non-null conditions at runtime and utilize cascaded if_then_else expressions for shape retrieval, enhancing robustness.
    - Removed deprecated code and streamlined the binding process for clarity and maintainability.
    
    * fix(test_nullable_buffer_params): improve formatting and consistency in test output
    
    - Updated string formatting for better readability in the `test_nullable_shared_shape` function.
    - Ensured consistent use of double quotes for string literals.
    - Added a missing newline at the end of the file for proper formatting.
    
    * refactor(arg_binder): simplify allocation size calculation in BindDLTensors
    
    - Streamlined the calculation of allocation size by replacing a lambda function with a direct loop, enhancing readability and maintainability.
    - Improved clarity in the null check message for data pointers, ensuring better understanding of the binding process.
    
    * Remove debug prints from phase.py
    
    Removed debug print statements after MakePackedAPI transformation.
    f6db2014
arg_binder.h 7.2 KB