sw/vec_iree: Add build option for intermediate output Change-Id: I6c09728cb05c2e2d55dae37f3ef4c41320a5c8b1
diff --git a/cmake/sparrow_modules.cmake b/cmake/sparrow_modules.cmake index 971564e..195246c 100644 --- a/cmake/sparrow_modules.cmake +++ b/cmake/sparrow_modules.cmake
@@ -7,6 +7,7 @@ # FLAGS: Flags to pass to the translation tool (list of strings). # C_IDENTIFIER: Identifier to use for generate c embed code. # If omitted then no C embed code will be generated. +# TFLITE_OUTPUT: TFLite output array name # RVV_OFF: Indicate RVV is OFF (default: ON) # VMVX: Compile VMVX backend # INLINE_HAL: Use inline HAL. @@ -41,7 +42,7 @@ cmake_parse_arguments( _RULE "PUBLIC;RVV_OFF;VMVX;INLINE_HAL" - "NAME;SRC;C_IDENTIFIER" + "NAME;SRC;C_IDENTIFIER;TFLITE_OUTPUT" "FLAGS" ${ARGN} ) @@ -61,6 +62,8 @@ "${_RULE_SRC}" C_IDENTIFIER "${_RULE_C_IDENTIFIER}_bytecode_module_static" + TFLITE_OUTPUT + "${_RULE_TFLITE_OUTPUT}" FLAGS "${_RULE_FLAGS}" "${_RVV_OFF_ARG}" @@ -72,6 +75,8 @@ "${_RULE_NAME}_c_module_static" SRC "${_RULE_SRC}" + TFLITE_OUTPUT + "${_RULE_TFLITE_OUTPUT}" FLAGS "${_RULE_FLAGS}" "${_RVV_OFF_ARG}" @@ -87,6 +92,8 @@ "${_RULE_SRC}" C_IDENTIFIER "${_RULE_C_IDENTIFIER}_bytecode_module_vmvx" + TFLITE_OUTPUT + "${_RULE_TFLITE_OUTPUT}" FLAGS "${_RULE_FLAGS}" "${_INLINE_HAL_ARG}" @@ -97,6 +104,8 @@ "${_RULE_NAME}_c_module_vmvx" SRC "${_RULE_SRC}" + TFLITE_OUTPUT + "${_RULE_TFLITE_OUTPUT}" FLAGS "${_RULE_FLAGS}" "${_INLINE_HAL_ARG}"
diff --git a/cmake/sparrow_static_module.cmake b/cmake/sparrow_static_module.cmake index a42e3c6..0aa6928 100644 --- a/cmake/sparrow_static_module.cmake +++ b/cmake/sparrow_static_module.cmake
@@ -5,6 +5,7 @@ # NAME: Name of target. # SRC: Source file to compile into a bytecode module. Support relative path. # C_IDENTIFIER: Identifier to use for generate c embed code. +# OUTPUT: TFLite output array name # FLAGS: Flags to pass to the translation tool (list of strings). # RVV_OFF: Indicate RVV is OFF (default: ON) # EMITC: Uses EmitC to output C code instead of VM bytecode. @@ -39,7 +40,7 @@ cmake_parse_arguments( _RULE "RVV_OFF;EMITC;INLINE_HAL" - "NAME;SRC;C_IDENTIFIER" + "NAME;SRC;C_IDENTIFIER;TFLITE_OUTPUT" "FLAGS" ${ARGN} ) @@ -53,6 +54,7 @@ set(_MLIR_SRC "${CMAKE_CURRENT_BINARY_DIR}/${_RULE_NAME}.mlir") get_filename_component(_SRC_PATH "${_RULE_SRC}" REALPATH) set(_ARGS "${_SRC_PATH}") + list(APPEND _ARGS "${_RULE_TFLITE_OUTPUT}") list(APPEND _ARGS "-o") list(APPEND _ARGS "${_RULE_NAME}.mlir") # Only add the custom_command here. The output is passed to
diff --git a/cmake/sparrow_vmvx_module.cmake b/cmake/sparrow_vmvx_module.cmake index 60ee602..6a3f997 100644 --- a/cmake/sparrow_vmvx_module.cmake +++ b/cmake/sparrow_vmvx_module.cmake
@@ -4,6 +4,8 @@ # Parameters: # NAME: Name of target. # SRC: Source file to compile into a bytecode module. Support relative path. +# C_IDENTIFIER: Identifier to use for generate c embed code. +# TFLITE_OUTPUT: TFLite output array name # FLAGS: Flags to pass to the translation tool (list of strings). # EMITC: Uses EmitC to output C code instead of VM bytecode. # INLINE_HAL: Use inline HAL. @@ -36,7 +38,7 @@ cmake_parse_arguments( _RULE "EMITC;INLINE_HAL" - "NAME;SRC;C_IDENTIFIER" + "NAME;SRC;C_IDENTIFIER;TFLITE_OUTPUT" "FLAGS" ${ARGN} ) @@ -50,6 +52,7 @@ set(_MLIR_SRC "${CMAKE_CURRENT_BINARY_DIR}/${_RULE_NAME}.mlir") get_filename_component(_SRC_PATH "${_RULE_SRC}" REALPATH) set(_ARGS "${_SRC_PATH}") + list(APPEND _ARGS "${_RULE_TFLITE_OUTPUT}") list(APPEND _ARGS "-o") list(APPEND _ARGS "${_RULE_NAME}.mlir") # Only add the custom_command here. The output is passed to