# Copyright 2022 The IREE Authors # # Licensed under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # iree_microbenchmark_suite() # # Generates microbenchmark suites for MLIR input modules. # Parameters: # NAME: Name of target. # SRCS: Source files to compile into a bytecode module (list of strings). # FLAGS: Flags to pass to the compiler tool (list of strings). function(iree_microbenchmark_suite) if(NOT IREE_BUILD_MICROBENCHMARKS) return() endif() cmake_parse_arguments( _RULE "" "NAME" "SRCS;FLAGS" ${ARGN} ) iree_package_name(PACKAGE_NAME) foreach(_SRC IN LISTS _RULE_SRCS) set(_COMPILE_TOOL "iree-compile") set(_TRANSLATE_SRC "${_SRC}") set(_MODULE_FILE_NAME "${_RULE_NAME}_${_SRC}.vmfb") set(_TARGET_NAME "${PACKAGE_NAME}_${_MODULE_FILE_NAME}") set(_ARGS "${_RULE_FLAGS}") get_filename_component(_TRANSLATE_SRC_PATH "${_TRANSLATE_SRC}" REALPATH) list(APPEND _ARGS "${_TRANSLATE_SRC_PATH}") list(APPEND _ARGS "-o") list(APPEND _ARGS "${_MODULE_FILE_NAME}") add_custom_command( OUTPUT "${_MODULE_FILE_NAME}" COMMAND ${_COMPILE_TOOL} ${_ARGS} DEPENDS ${_COMPILE_TOOL} ${_TRANSLATE_SRC} VERBATIM ) add_custom_target("${_TARGET_NAME}" DEPENDS "${_MODULE_FILE_NAME}" ) add_dependencies(iree-microbenchmark-suites "${_TARGET_NAME}") endforeach(_SRC IN LISTS _SRCS) endfunction(iree_microbenchmark_suite)